【发布时间】:2011-03-20 09:56:07
【问题描述】:
我阅读了如何使用服务来做到这一点,但我想知道它是否可以通过简单的应用程序来实现。 我正在使用 c#。
谢谢
【问题讨论】:
我阅读了如何使用服务来做到这一点,但我想知道它是否可以通过简单的应用程序来实现。 我正在使用 c#。
谢谢
【问题讨论】:
你不能。在未经用户同意的情况下运行提升的唯一其他方式是作为计划任务。
【讨论】:
Windows 不会在启动时运行提升的应用程序,因为它不想提示您输入一百万个启动应用程序。从技术上讲,您可以通过编写一个简单的启动器来解决这个问题,ShellExecute 是您的真实应用程序,但这会在启动时提示您并且非常烦人。正如其他人所说,最好的方法是将您需要管理权限的任务转移到服务中,并将用户界面的东西分开。
【讨论】:
我鼓励您阅读UAC team's blog regarding why startup applications are blocked from requiring elevation 上的帖子。需要考虑的一件事:要求提升完全会阻止标准用户使用您的应用。
官方指南:您的启动程序不应该需要提升。老实说,我很难想象在一个启动应用程序中你可以合法地要求提升的场景。您能否提供更多关于为什么您需要提升的详细信息?
【讨论】:
这是不可能的。您可能拥有的最接近的体验是创建一个运行提升的服务和一个无需提升运行且只是服务前端的 winforms 应用程序。但是你必须小心,如果你没有正确关闭墙壁,你可能会引起安全问题。
【讨论】: