应用程序需要访问注册表

时间:2015-09-23 05:56:36

标签: windows delphi delphi-xe8

我有一个使用注册表的应用程序,它运行正常,直到我转移到XE8和Windows 10 64位。现在我可以让它与注册表一起工作的唯一方法是以管理员身份运行XE8并重新编译应用程序。那是为什么?

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

1 个答案:

答案 0 :(得分:1)

  

我有一个使用注册表的应用程序,它运行正常,直到我转移到XE8和Windows 10 64位。现在我可以让它与注册表一起工作的唯一方法是以管理员身份运行XE8并重新编译应用程序。那是为什么?

Registry API没有改变。无论您的应用程序编译在哪个版本的Delphi中,访问注册表的工作方式都相同。以管理员身份运行IDE本身对编译的应用程序是否以管理员身份运行没有影响,除非您在IDE中运行应用程序' s调试器。

如果没有看到您的实际代码,或者知道您尝试访问哪些注册表项,或者甚至知道您的应用是否针对32位或64位编译,那么就没有真正的方法可以回答您的问题。我们所能做的只是猜测。

您可能尝试访问以非管理员身份运行应用时无法访问的注册表项。访问权限将完全失败,或者更有可能被Registry VirtualizationRegistry RedirectorRegistry Reflection默默地重定向到注册表的另一部分,具体取决于问题的根本问题实际上是。

  

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

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

对于您的应用?向项目添加UAC清单,将requestedExecutionLevel值设置为requireAdminstrator。如果您需要调试应用程序,IDE也必须以管理员身份运行。

相关问题