在启动时以管理员身份运行程序

5
我有一个自助服务应用程序,想要在启动时运行它。问题在于,当我设置注册表值以便在启动时打开它时,它不会作为管理员打开程序,因此该程序不能正常工作。我正在使用Windows 7。有人能帮我编写代码以便以管理员身份运行它吗?一些程序(如防病毒软件和病毒本身)会在启动时作为管理员运行,而不需要用户接受以管理员身份运行,这正是我想要的。非常感谢任何帮助。

2
请查看此帖子:http://www.sevenforums.com/tutorials/11949-elevated-program-shortcut-without-uac-prompt-create.html - Bala R
2
@dgvid 你是在吸毒吗?你指出的那个重复帖子与此帖子无关,很烦人的是,你们许多版主在不理解关闭帖子的基本规则的情况下四处关闭标签。如果重复帖子不能为当前发布者提供他或她所需的答案,则不能被视为重复。而且在你的情况下,这些问题甚至都不相同,答案也不相关。请停止关闭提醒,不要成为另一个用户caserOne。 - Erx_VB.NExT.Coder
我没有吸毒,也没有关闭问题标签。谢谢指出我的错误。不过以后我会更加小心的。 - dgvid
2个回答

5

要在启动时运行一个应用程序,你可以选择以下两种方法:

  1. 将其作为计划任务运行,设置凭据为管理员帐户,并将其设置为在启动时(或登录时)运行。
  2. 创建一个 Windows 服务,并将 Logon As 帐户设置为管理员帐户或本地系统帐户。

你提到的杀毒软件示例似乎是第二种方法。


2

您可以将程序设置为仅以管理员身份运行。

Visual Studio中:

Right click on the Project -> Properties -> Security -> Enable ClickOnce Security Settings

当您点击后,项目属性文件夹下将创建一个名为app.manifest的文件。一旦创建完成,您可以取消选中启用ClickOnce安全设置选项。

打开该文件并更改以下行:

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

to:

 <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

这将使程序需要管理员权限,并确保您可以访问该文件夹。

5
非常好,但当程序以管理员身份运行时,它不会在启动时启动,这是我的问题。 - user586399

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接