7

handle.exe というプロセスに C# 経由で複数のコマンド ライン引数を渡す必要があります: http://www.google.com.mt/search?sourceid=chrome&ie=UTF-8&q=handle.exe

まず、ADMINISTRATOR 権限を使用して実行可能ファイルを実行する必要があります。この投稿はまさにそれを達成するのに役立ちました: vista、c# で cmd.exe を管理者としてプログラムで実行します。

しかし、「-p explore」などの実際の行引数を呼び出す次の問題が発生します。

コマンドライン引数を一緒に、または連続して指定するにはどうすればよいですか?

現在のコードは次のとおりです。

        Process p = new Process();
        ProcessStartInfo processStartInfo = new ProcessStartInfo("filePath");
        processStartInfo.CreateNoWindow = true;
        processStartInfo.UseShellExecute = false;
        processStartInfo.RedirectStandardOutput = true;
        processStartInfo.RedirectStandardInput = true;
        processStartInfo.Verb = "runas";
        processStartInfo.Arguments = "/env /user:" + "Administrator" + " cmd";

        p.StartInfo = processStartInfo;
        p.Start();
        string output = p.StandardOutput.ReadToEnd();
        p.WaitForExit();
        Console.WriteLine(output);      

ありがとう

4

3 に答える 3

1

あなたが探している答えは、Runas コマンドのドキュメントにあると思います。

runas /user:user@domain.microsoft.com "notepad my_file.txt" 

runasコマンドの最後の引数は、任意の引数と共に実行されるコマンドのようです。重要なのは、引用符を使用して実際のコマンド実行可能ファイルとその引数をグループ化することです。これにより、値が runas コマンドに対する個別の引数として表示されず、代わりに単独のコマンドとして発行されます。

したがって、あなたの例では、次のことを行うことができます。

processStartInfo.Arguments = "/env /user:" + "Administrator" + " \"cmd -p explore\"";
于 2010-04-27T11:34:28.987 に答える
0

昇格された権限でプロセスを実行しようとしている場合は、runasを呼び出すよりも良い方法があるかもしれません。

于 2010-04-26T01:04:17.253 に答える
0

UseShellExecute コマンドを使用してプロセスを実行し、ユーザー名とパスワードを渡すことができます。

http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.useshellexecute%28v=VS.100%29.aspx

http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.username%28v=VS.100%29.aspx

ユーザー名とパスワードをどこかに保存しますが。

于 2010-04-25T22:03:49.403 に答える