0

我可以在应用程序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一个已经存在的 exe 文件,Admin Rights (Run As Admin)但我希望它在我在 Visual Studio 2010 中运行应用程序时提示管理员权限确认。

4

2 回答 2

2

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

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

于 2012-08-06T15:10:34.043 回答
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 然后你点击windows Start>Cmd 在dos窗口中输入:

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

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

而已。

于 2012-08-06T22:17:13.917 回答