关于winforms:Windows Forms – C# – 请求管理员权限

Windows Forms - C# - ask for administator privilege

本问题已经有最佳答案,请猛点这里访问。

0

我正在构建一个WinForms C应用程序,我需要它请求管理员权限,这样我就可以复制和打开C:\中的目录。

这有可能吗?

我要使用的代码(如果有人需要)是:

1
2
3
4
if (!Directory.Exists("C:\\smm"))
{
    Directory.Create("gg");
}

或者类似的,但我确信我需要管理员特权。

有人知道我怎么做吗?


您需要在项目中启用ClickOnce安全设置,然后将应用程序清单更改为需要管理员权限。这将导致Windows在进程启动时显示UAC提升提示,以便用户可以将程序升级为管理员。

要启用ClickOnce,请转到项目的属性,选择左侧的"安全"选项卡,然后选中"启用ClickOnce安全设置"框。然后进入项目的"属性"目录,打开app.manifest文件。在该文件中,有一行用于设置所需权限:

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

您可以使它需要这样的管理员特权:

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

这将使它在进程启动时需要管理员。