繁体   English   中英

应用程序需要访问注册表

[英]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 VirtualizationRegistry RedirectorRegistry Reflection静默重定向到注册表的另一部分,具体取决于您的问题的实际根本问题是什么。

有没有办法配置 XE8 使其始终以管理员身份运行?

对于 IDE 本身? 创建 bds.exe 的快捷方式,进入快捷方式属性,并启用“以管理员身份运行此程序”选项。

对于您的应用程序? 添加一个UAC清单到您的项目设置requestedExecutionLevelrequireAdminstrator 如果您需要调试应用程序,IDE 也必须以管理员身份运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM