我有一个需要提升权限的应用程序(它有点像自定义安装程序)。在这个应用程序中,我使用ShellExecute()显示一个PDF文件。Adobe Reader似乎是以与调用应用程序相同的权限启动的。我希望Adobe Reader能够以标准的用户权限启动,而不是被提升。
我有什么办法可以做到这一点吗?(它可能是在Delphi中实现的,但是对于这个问题,语言可能并不重要)。
发布于 2013-06-18 03:58:07
不幸的是,没有真正简单的方法来做到这一点。
执行此操作的一种方法是使用Task Scheduler -使用当前登录用户的非提升凭据,使用ITaskService界面安排任务立即运行。
发布于 2013-06-18 04:06:35
您试图实现的目标不是很容易实现的,也不受支持。然而,使用少量的黑客攻击是可能的。Aaron Margosis写了一篇article,描述了一种技术。
要引用相关部分,您需要执行以下步骤:
在当前令牌中启用访问令牌获取代表桌面外壳的HWND (GetShellWindow)
这篇文章包含了一些演示Delphi源的下载链接,它应该足够简单,以便翻译成C++。
https://stackoverflow.com/questions/17152790
复制相似问题