一旦我的程序安装在客户端机器上,我如何强制我的程序在Windows 7上以管理员身份运行?
当前回答
添加一个requestedExecutionLevel元素到你的清单中只是战斗的一半;你必须记住UAC是可以关闭的。如果是,你必须执行老式的检查方法,如果用户不是管理员(在你的线程的CurrentPrincipal上调用IsInRole(WindowsBuiltInRole.Administrator)),就弹出一个错误对话框。
其他回答
As的
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
如果您还没有或不知道如何添加应用程序清单,则需要添加应用程序清单。由于一些项目不会自动添加单独的清单文件,首先转到项目属性,导航到应用程序选项卡,并检查以确保您的项目没有排除在底部的清单。
接下来,右击项目 添加新项目 最后,找到并单击应用程序清单文件
您需要修改嵌入到程序中的清单。这适用于Visual Studio 2008及更高版本:项目+添加新项目,选择“应用程序清单文件”。将<requestedExecutionLevel>元素更改为:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
用户在启动程序时得到UAC提示。明智地使用;他们的耐心很快就会耗尽。
在Visual Studio 2008上工作时,右键单击项目->添加新项,然后选择应用程序清单文件。
在清单文件中,你会发现标签requestedExecutionLevel,你可以将级别设置为三个值:
<requestExecutionLevel level=“asInvoker” uiAccess=“false” />
OR
< requestdexecutionlevel level="requireAdministrator" uiAccess="false" />
OR
<requestExecutionLevel level=“highestAvailable” uiAccess=“false” />
要将应用程序设置为以管理员身份运行,必须选择中间的一个。
具体步骤如下。
将应用程序清单文件添加到项目 更改应用程序设置为"app.manifest" 更新标签“requestedExecutionLevel”为requireAdministrator。
注意,使用这段代码你需要关闭ClickOnce的安全设置,为此,进入Properties -> security -> ClickOnce security
您可以在EXE文件中嵌入清单文件,这将使Windows(7或更高版本)始终以管理员身份运行程序。
您可以在步骤6:创建和嵌入应用程序清单(UAC) (MSDN)中找到更多详细信息。
推荐文章
- Linq-to-Entities Join vs GroupJoin
- 为什么字符串类型的默认值是null而不是空字符串?
- 在list中获取不同值的列表
- 组合框:向项目添加文本和值(无绑定源)
- AutoMapper:“忽略剩下的?”
- 如何为ASP.net/C#应用程序配置文件值中的值添加&号
- 从System.Drawing.Bitmap中加载WPF BitmapImage
- 如何找出一个文件存在于c# / .NET?
- 为什么更快地检查字典是否包含键,而不是捕捉异常,以防它不?
- [DataContract]的命名空间
- string. isnullorempty (string) vs. string. isnullowhitespace (string)
- 完全外部连接
- 如何使用。net 4运行时运行PowerShell ?
- 在foreach循环中编辑字典值
- 如何在xml文档中引用泛型类和方法