【发布时间】:2013-07-06 07:29:44
【问题描述】:
我有一个需要以管理权限运行的 C# 应用程序。特别是,它在 Windows 7 启动时加载并在后台执行一些脚本。此过程对用户完全不可见,并且在执行时被背景覆盖。权限实现是通过清单文件实现的。现在,问题是我需要自动化 UAC 提示出现的步骤,并且不可见地接受它。
如何在 C# 中完成类似的操作?
【问题讨论】:
-
UAC 提示的全部要点是,您不能以管理员身份以编程方式运行代码,除非用户明确表示他们信任它并希望让它以管理员身份运行。如果有一种简单的方法可以做到这一点,那么它将完全破坏该功能的目的,就没有理由一开始就添加它。这就像问如何在没有钥匙的情况下打开门,或者在没有密码的情况下进入保险箱。如果可以,那么一开始就存在该功能并没有多大意义。
-
It loads at Windows 7 start-up and executes a few scripts in the background- 对我来说听起来像是一个完全无害的程序 ;) -
那你不能禁用 UAC 吗?
-
如果是这种情况,那么也许您需要将其作为服务运行?
-
最好的方法是修复您的应用程序,使其不需要提升即可运行。 (为什么它需要运行提升?)绕过 UAC 提示是不可能的,这是设计使然。 “如果这可能会怎样”的思想实验在这里很有帮助——如果可能,那么这就是恶意软件会做的事情,而 UAC 将毫无意义。