Windows 窗体 - C# - 要求管理员权限 [重复]

Posted

技术标签:

【中文标题】Windows 窗体 - C# - 要求管理员权限 [重复]【英文标题】:Windows Forms - C# - ask for administator privilege [duplicate] 【发布时间】:2011-12-25 03:31:22 【问题描述】:

可能重复:How to force C# App to run as administrator on Windows 7

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

这可能吗?

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

if (!Directory.Exists("C:\\smm"))

    Directory.Create("gg");

或类似的东西,但我确定我需要管理员权限。

有人知道我该怎么做吗?

【问题讨论】:

试试这个,***.com/questions/2021831/… ***.com/questions/2818179/… 如 Hans Passant 所描述的使用清单文件 【参考方案1】:

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

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

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

你可以像这样要求管理员权限:

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

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

【讨论】:

实际上,只有在禁用 ClickOnce 时我才有效。如果不是,我在构建时收到以下错误:ClickOnce does not support the request execution level 'requireAdministrator'. 某些项目似乎就是这种情况。不知道这是怎么回事。

以上是关于Windows 窗体 - C# - 要求管理员权限 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

具有 Ms 访问权限的 C# Windows 窗体应用程序无法插入数据

c# - 如何在 Windows 窗体中排列元素,如 Windows 资源管理器

C#学生成绩管理系统(文档+Access数据库)

Windows 窗体 C#(拖放 100 个对象)

Windows 窗体和 C# 中的动态自上而下的控件列表?

控制 C# windows 窗体的大小问题,在编译时看起来不同,在运行时看起来不同