我的程序当前行
状态:= DllRegisterServer;
在WIN7的计算机上失败,而用户不是管理员。
是否可以以提升的权限以编程方式调用DllRegisterServer?
或者有什么方法可以提示提升权限然后使用该信息来执行DllRegisterServer。
答案 0 :(得分:3)
提升只能在创建流程时执行。因此,您需要一个新进程来执行此代码。您的主要选择:
在这些选项中,1号可能对您来说更简单。对于选项1,您不需要单独的可执行文件。您可以传递将导致对注册函数的调用的命令行参数。
答案 1 :(得分:1)
没有办法以编程方式提升程序的权限,只有用户才有意这样做。您可以指示操作系统,您的程序需要提升权限,例如,通过包含清单
How to add manifest <requestedPrivileges> info into delphi project
您还可以决定允许程序在没有提升权限的情况下运行(不包括清单),但随后禁用所有需要提升权限的操作或重新启动程序,要求在调用选项时提升权限一个非提升的过程(非常像任务管理器使用“显示所有用户的过程”按钮:
Delphi: How to start application with elevated status and wait for it to terminate?