2012-07-11 59 views
1

如何在具有管理權限的c#中啓動進程? 我使用的代碼爲:如何啓動具有管理權限的進程

Process p = new Process(); 
        p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
        p.StartInfo.FileName = path; 
        p.StartInfo.UseShellExecute = true; 
        p.StartInfo.RedirectStandardOutput = true; 
        p.StartInfo.RedirectStandardError = true; 
        if (System.Environment.OSVersion.Version.Major >= 6) 
        { 
         p.StartInfo.Verb = "runas"; 
        } 

        p.Start(); 

仍然無法正常工作。請幫助我。

感謝

+0

爲該進程提供所需的用戶權限.. – 2012-07-11 10:58:36

+0

可能的重複[如何在C#中以管理員模式啓動進程](http://stackoverflow.com/questions/2532769/how-to -start-A-過程-AS-管理員模式在-C-尖銳) – 2012-07-11 11:03:17

回答

0

如果您控制了您要運行的應用程序,則應在可執行文件上附加清單並要求提升權限。 爲此,您做一個類似的文件,並將其命名一樣與.manifest的應用程序的擴展名(如yourApp.exe.manifest):

<?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="appName" type="win32"/> 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> 
    <security> 
     <requestedPrivileges> 
     <requestedExecutionLevel level="requireAdministrator"/> 
     </requestedPrivileges> 
    </security> 
    </trustInfo> 
    <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> 
     <application> 
      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> 
     </application> 
    </compatibility> 
</assembly> 

,然後使用從Visual Studio命令MT的工具提示附加它

0

的的ProcessStartInfo類具有諸如用戶名密碼&請儘量使用過程中的Start方法

2
var processInfo = new ProcessStartInfo 
{ 
    FileName = "app.exe", 
    UserName = "Username", 
    Domain = "yourdomain or leave blank", 
    Password = "password", 
    UseShellExecute = false, 
}; 
Process.Start(processInfo); 

只需添加/調整您的需求。

相關問題