c sharp exe应该在打开时要求“以管理员身份运行”提示

时间:2012-01-10 11:05:11

标签: c# windows winforms

我正在使用急剧程序生成的exe。当我运行exe时,我希望出现一个UAC提示符,其中包含以管理员身份运行exe的选项。我已经看到默认情况下运行exe作为管理员的示例。但是,如何让UAC让我以管理员身份运行exe?有什么想法吗?

4 个答案:

答案 0 :(得分:7)

您需要添加“Application Manifest File”。 的一步步骤

  • 右键单击您的项目
  • 添加“新项目”
  • 选择“应用程序清单文件”
  • 找到这个
  • change level =“requireAdministrator”

答案 1 :(得分:6)

在Visual Studio中添加“应用程序清单文件”(如果没有), 然后在其中添加<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> ,以在运行应用程序时请求管理员权限。

答案 2 :(得分:4)

Windows vista / 7 / server 2008 R2使用用户帐户控制(UAC)技术来确保安全,并通过限制应用程序的权限来保护操作系统免受恶意软件的侵害,直到管理员授权为止。这就是我们需要以管理员身份运行应用程序的原因。这通常在运行应用程序时完成。过程是,右键单击应用程序并单击&#34;以管理员身份运行&#34;使用管理权限运行应用程序。如果假设用户忘记这样做并正常运行应用程序,则可能会出现意外行为。因为在win vista及以上版本中需要管理权限的所有操作(例如,调用进程,使用系统驱动器等)都不会被执行。

因此,为了避免每次都以管理员身份运行应用程序,我们可以默认将应用程序作为管理员运行。 为了实现这一点,我们需要对应用程序清单进行一些调整。应用程序清单是描述应用程序的XML文件。

按照以下步骤使.net应用程序以管理员身份运行:

步骤1:转到项目的属性,然后单击&#34;查看Windows设置&#34;按钮。这将打开文件&#34; app.manifest&#34;。

步骤2:在requestedExecutionLevel键中将level的值更改为&#34; requireAdministrator&#34;并且uiAccess的值为&#34; False&#34;。 设置级别为&#34; requireAdministrator&#34;表示应用程序仅为管理员运行,并要求使用管理员的完全访问令牌启动应用程序。 将uiAccess设置为&#34; False&#34;表示应用程序不需要将输入驱动到桌面上另一个窗口的用户界面。不提供辅助功能的应用程序应将此标志设置为false。将输入驱动到桌面上的其他窗口(例如,屏幕键盘)所需的应用程序应将此值设置为true。

步骤3:保存更改,重建应用程序并将其安装在Win Vista或更高版本的框中。

现在,应用程序将以管理员身份自动启动。

答案 3 :(得分:1)

您可以使用ProcessStartInfo class or Windows principal来实现此目标。

您还可以embed a manifest file in your application .exe并设置requestedExecutionLevel属性。

还有一种方法可以通过windows registry启用/禁用UAC。