首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有提升权限的DllRegisterServer

具有提升权限的DllRegisterServer
EN

Stack Overflow用户
提问于 2013-02-05 02:42:14
回答 2查看 527关注 0票数 0

我的程序当前有一行

Status := DllRegisterServer;

该命令在为WIN7且用户不是管理员的计算机上失败。

是否可以使用提升的权限以编程方式调用DllRegisterServer?

或者,有没有什么方法可以提示我提供提升的权限,然后使用该信息执行DllRegisterServer。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-05 02:52:17

提升只能在流程创建时执行。所以你需要一个新的进程来执行这段代码。您的主要选项:

  1. 调用ShellExecute,传递动词runas和一个exe文件。这将提升新进程。
  2. 将requireAdministrator清单添加到可执行文件并运行该文件。
  3. 使用进程外COM服务器并提升其启动权限。

在这些选项中,第一个选项对您来说可能更简单。选项1不需要单独的可执行文件。可以传递命令行参数,这些参数将导致对注册函数的调用。

票数 3
EN

Stack Overflow用户

发布于 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?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14693321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档