[英]Application Needs Access to the Registry
我有一个使用注册表的应用程序,它运行良好,直到我转移到 XE8 和 Windows 10 64 位。 现在我可以让它与注册表一起工作的唯一方法是以管理员身份运行 XE8 并重新编译应用程序。 这是为什么?
有没有办法配置 XE8 使其始终以管理员身份运行?
我有一个使用注册表的应用程序,它运行良好,直到我转移到 XE8 和 Windows 10 64 位。 现在我可以让它与注册表一起工作的唯一方法是以管理员身份运行 XE8 并重新编译应用程序。 这是为什么?
Registry API 没有改变。 无论您的应用程序是在哪个 Delphi 版本中编译的,访问注册表的方式都是一样的。以管理员身份运行 IDE 本身对编译后的应用程序是否以管理员身份运行没有影响,除非您在 IDE 的调试器中运行该应用程序。
如果没有看到您的实际代码,或者不知道您尝试访问的注册表项,甚至不知道您的应用程序是针对 32 位还是 64 位编译的,就没有真正的方法来回答您的问题。 我们所能做的就是猜测。
在以非管理员身份运行应用程序时,您可能会尝试访问您无权访问的注册表项。 访问要么完全失败,要么更可能被Registry Virtualization 、 Registry Redirector或Registry Reflection静默重定向到注册表的另一部分,具体取决于您的问题的实际根本问题是什么。
有没有办法配置 XE8 使其始终以管理员身份运行?
对于 IDE 本身? 创建 bds.exe 的快捷方式,进入快捷方式属性,并启用“以管理员身份运行此程序”选项。
对于您的应用程序? 添加一个UAC清单到您的项目设置requestedExecutionLevel
值requireAdminstrator
。 如果您需要调试应用程序,IDE 也必须以管理员身份运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.