我需要我的软件能够在Windows Vista上以管理员身份运行(如果有人在没有管理权限的情况下运行它,它将崩溃)。
启动其他软件时,我看到系统提示“此软件将以管理员身份运行。是否要继续?” 当应用尝试获取管理权限时。
在Windows Vista上运行c#应用程序时如何请求管理特权?
我需要我的软件能够在Windows Vista上以管理员身份运行(如果有人在没有管理权限的情况下运行它,它将崩溃)。
启动其他软件时,我看到系统提示“此软件将以管理员身份运行。是否要继续?” 当应用尝试获取管理权限时。
在Windows Vista上运行c#应用程序时如何请求管理特权?
Answers:
将以下内容添加到清单文件中:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
您也可以将其highestAvailable
用于关卡。
在这里查看有关嵌入清单文件的信息:
http://msdn.microsoft.com/en-us/library/bb756929.aspx
PS:如果没有清单文件,则可以轻松添加一个新文件:
在Visual Studio中,右键单击项目->添加项目->选择应用程序清单文件(在Visual C#项目的常规下)
添加的文件已经具有以上部分,只需将级别更改requireAdministrator
为asInvoker
将此XML放在名为yourexename.exe.manifest的文件中:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="highestAvailable" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
您需要requestedExecutionLevel
在清单中使用令牌:
对于F#Visual Studio 2013,包括一个清单文件,该文件使用FSharp编译器的/win32manifest
标志要求管理员提升权限,如下所示对我有用。因此,给定一个名为“ App.Exe”的项目输出
创建一个具有以下内容的文件(为方便起见,您可以将文件添加到项目中。确保它
Build Action
是“None' and
复制到输出...”。is
请勿复制. By
convention such a file is named
App.Exe.manifest`。如果需要uiAccess(用户界面),请将该程序集必须被强命名。
<?xml version="1.0" encoding="utf-8" ?>
<asmv1:assembly manifestVersion="1.0"
xmlns="urn:schemas-microsoft-com:asm.v1"
xmlns:asmv1="urn:schemas-microsoft-com:asm.v1"
xmlns:asmv2="urn:schemas-microsoft-com:asm.v2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="App" />
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
</asmv1:assembly>
编辑项目对话框构建面板的Other flags:
输入字段,以包括以下内容:/win32manifest:<ApplicationManifestFile>
。例如,在这种情况下,/win32manifest:App.Exe.manifest
。