2016-10-10 16 views
0

NETSHコマンドを(ウィンドウなしで)サイレントモードで実行したい。 私はこのコードを書いたが、動作しません。ウィンドウなしでバックグラウンドでプロセスをサイレントモードで実行する

public static bool ExecuteApplication(string Address, string workingDir, string arguments, bool showWindow) 
{ 
    Process proc = new Process(); 
    proc.StartInfo.FileName = Address; 
    proc.StartInfo.WorkingDirectory = workingDir; 
    proc.StartInfo.Arguments = arguments; 
    proc.StartInfo.CreateNoWindow = showWindow; 
    return proc.Start(); 
} 

string cmd= "interface set interface name=\"" + InterfaceName+"\" admin=enable"; 
ExecuteApplication("netsh.exe","",cmd, false); 
+5

あなたは 'CreateNoWindow'に' false'を渡しています...それで、ウィンドウを作成するように頼んだことがあります。 –

答えて

0

ユーザーのシェル実行false

proc.StartInfo.UseShellExecute = false; 

showWindowパラメータにtrueを渡すが

ExecuteApplication("netsh.exe","",cmd, true); 
1

これは私が私のプロジェクトでそれを行う方法であることを確認してください:

ProcessStartInfo psi = new ProcessStartInfo();    
psi.FileName = "netsh";    
psi.UseShellExecute = false; 
psi.RedirectStandardError = true; 
psi.RedirectStandardOutput = true; 
psi.Arguments = "SOME_ARGUMENTS"; 

Process proc = Process.Start(psi);     
proc.WaitForExit(); 
string errorOutput = proc.StandardError.ReadToEnd(); 
string standardOutput = proc.StandardOutput.ReadToEnd(); 
if (proc.ExitCode != 0) 
    throw new Exception("netsh exit code: " + proc.ExitCode.ToString() + " " + (!string.IsNullOrEmpty(errorOutput) ? " " + errorOutput : "") + " " + (!string.IsNullOrEmpty(standardOutput) ? " " + standardOutput : "")); 

また、コマンドの出力も説明します。

+0

ありがとうございました。それは動作します。 – user3859999

関連する問題