我的程序当前有一行
Status := DllRegisterServer;
该命令在为WIN7且用户不是管理员的计算机上失败。
是否可以使用提升的权限以编程方式调用DllRegisterServer?
或者,有没有什么方法可以提示我提供提升的权限,然后使用该信息执行DllRegisterServer。
发布于 2013-02-05 02:52:17
提升只能在流程创建时执行。所以你需要一个新的进程来执行这段代码。您的主要选项:
在这些选项中,第一个选项对您来说可能更简单。选项1不需要单独的可执行文件。可以传递命令行参数,这些参数将导致对注册函数的调用。
发布于 2013-02-05 02:50:59
没有办法通过编程来提升程序的权限,只有用户才能这样做。您可以指示操作系统您的程序需要提升的权限,例如,通过包含清单
How to add manifest info into delphi project
您还可以决定允许您的程序在没有提升权限的情况下运行(通过不包括清单),但随后禁用所有需要提升权限的操作,或者在未提升权限的进程中调用该选项时重新启动您的程序以请求提升权限(非常类似于任务管理器使用“显示所有用户的进程”按钮:
Delphi: How to start application with elevated status and wait for it to terminate?
https://stackoverflow.com/questions/14693321
复制相似问题