Как сделать так, чтобы обычная программа запускалась с правами администратора под Windows Vista (Windows 7)
Допустим у нас есть обычное приложение Windows Forms Application, написанное C#, но нам требуется выполнение каких-нибудь операций с правами администратора.
Для этого нужно создать манифест файл в обычном текстовом редакторе, например:
<?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="YourApplicationName" 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>
Далее в свойствах проекта в разделе Build Events-> Post build event command line добавить строчку следующего вида:
"C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\mt.exe" -manifest "$(ProjectDir)yourapplication.manifest" -outputresource:"$(TargetDir)$(TargetName).exe;#1"
где mt.exe – программа Manifest Tool, которая входит в Microsoft SDK. В примере прописан абсолютный путь к mt.exe, его следует заменить на тот который у вас в системе.
Если вам не нужен манифест, который создается по умолчанию, его лучше отключить во избежание всяких конфликтов: Свойства проекта -> Application -> Resources -> Manifest
Create application without a manifest