我有一个使用注册表的应用程序,它运行正常,直到我转移到XE8和Windows 10 64位。现在我可以让它与注册表一起工作的唯一方法是以管理员身份运行XE8并重新编译应用程序。那是为什么?
有没有办法配置XE8以便它始终以管理员身份运行?
答案 0 :(得分:1)
我有一个使用注册表的应用程序,它运行正常,直到我转移到XE8和Windows 10 64位。现在我可以让它与注册表一起工作的唯一方法是以管理员身份运行XE8并重新编译应用程序。那是为什么?
Registry API没有改变。无论您的应用程序编译在哪个版本的Delphi中,访问注册表的工作方式都相同。以管理员身份运行IDE本身对编译的应用程序是否以管理员身份运行没有影响,除非您在IDE中运行应用程序' s调试器。
如果没有看到您的实际代码,或者知道您尝试访问哪些注册表项,或者甚至知道您的应用是否针对32位或64位编译,那么就没有真正的方法可以回答您的问题。我们所能做的只是猜测。
您可能尝试访问以非管理员身份运行应用时无法访问的注册表项。访问权限将完全失败,或者更有可能被Registry Virtualization,Registry Redirector或Registry Reflection默默地重定向到注册表的另一部分,具体取决于问题的根本问题实际上是。
有没有办法配置XE8以便它始终以管理员身份运行?
对于IDE本身?创建bds.exe的快捷方式,进入快捷方式属性,然后启用"以管理员身份运行此程序"选项。
对于您的应用?向项目添加UAC清单,将requestedExecutionLevel
值设置为requireAdminstrator
。如果您需要调试应用程序,IDE也必须以管理员身份运行。