2

管理者権限で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();

それでも動作していません。これで私を助けてください。

ありがとう

4

3 に答える 3

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

ニーズに追加/微調整するだけです。

于 2012-07-11T11:04:05.877 に答える
1

実行しようとしているアプリケーションを制御できる場合は、実行可能ファイルにマニフェストを添付し、昇格された権限を要求する必要があります。このために、これに似たファイルを作成し、拡張子が.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>

次に、VisualStudioコマンドプロンプトのmtツールを使用してアタッチします

于 2012-07-11T11:06:14.737 に答える
0

ProcessStartInfoクラスには、UserNameやPasswordなどのプロパティがあります。ProcessStartメソッドで使用してみてください。

于 2012-07-11T11:01:09.537 に答える