当我通过AND运行我的应用程序时,如何提示管理员权限?

时间:2012-08-06 15:02:52

标签: c#

我可以在应用程序Debug/Bin目录中将我的应用程序属性的exe文件更改为Run As Admin

但是当我通过Visual Studio运行它时,我希望它以管理员身份运行。

所以我创建了一个清单文件,我把它放在我的应用程序的debug/bin目录中,我也有mt.exe

我的清单文件内容:

Executable: hardwareMonitoring.exe 
Manifest:Hardwaremonitoring.exe.manifest
Sample application manifest file:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
  <assemblyIdentity version="1.0.0.0"
     processorArchitecture="X86"
     name="IsUserAdmin"
     type="win32"/> 
  <description>Description of your application</description> 
  <!-- Identify the application security requirements. -->
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="requireAdministrator"
          uiAccess="false"/>
        </requestedPrivileges>
       </security>
  </trustInfo>
</assembly>

现在我想我需要以某种方式使用mt.exe或需要将清单添加/嵌入到我的项目中?我的想法是,它不会在我的硬盘上创建自动Debug/Bin一个已经在Admin Rights (Run As Admin)的exe文件,但我希望它在我在Visual中运行应用程序时提示管理员权限确认Studio 2010。

2 个答案:

答案 0 :(得分:2)

调试应用程序(比如hello.exe)时,它通常通过名为vshost.exe的代理应用程序运行。该应用程序具有与您正在使用的VS实例相同的权限。

您可以尝试使用管理权限启动Visual Studio,以便使用该权限启动vshost.exe和您的应用程序。

答案 1 :(得分:0)

我把它放在某个地方我将它保存在文本文件中:

首先使用记事本创建一个文本文件并添加到其中:

Executable: hardwareMonitoring.exe 
Manifest:Hardwaremonitoring.exe.manifest
Sample application manifest file:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
  <assemblyIdentity version="1.0.0.0"
     processorArchitecture="X86"
     name="IsUserAdmin"
     type="win32"/> 
  <description>Description of your application</description> 
  <!-- Identify the application security requirements. -->
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="requireAdministrator"
          uiAccess="false"/>
        </requestedPrivileges>
       </security>
  </trustInfo>
</assembly>

然后将文件名保存为:appName.exe.manifest 然后在dos窗口中单击Windows开始&gt; Cmd类型:

mt -manifest appName.exe.manife
st.txt -outputresource:appName.exe;#1

如果mt.exe不是应用程序:Debug / Bin目录只是在mt之前给出目录。

多数民众赞成。