CMD でコマンドを実行するプロセスを作成しました。
var process = Process.Start("CMD.exe", "/c apktool d app.apk");
process.WaitForExit();
実際の CMD ウィンドウを表示せずにこのコマンドを実行するにはどうすればよいですか?
CMD でコマンドを実行するプロセスを作成しました。
var process = Process.Start("CMD.exe", "/c apktool d app.apk");
process.WaitForExit();
実際の CMD ウィンドウを表示せずにこのコマンドを実行するにはどうすればよいですか?
WindowsStyle-Property を使用して、indicate whether the process is started in a window that is maximized, minimized, normal (neither maximized nor minimized), or not visible
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
オブジェクトの初期化時にプロセスを開始したため、コードをこれに変更して、プロパティ (プロセスの開始後に設定された) が認識されないようにします。
Process proc = new Process();
proc.StartInfo.FileName = "CMD.exe";
proc.StartInfo.Arguments = "/c apktool d app.apk";
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.Start();
proc.WaitForExit();
さまざまなコメントや回答で指摘されているように、プログラムにはいくつかの問題があります。ここでそれらすべてに対処しようとしました。
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "apktool";
//join the arguments with a space, this allows you to set "app.apk" to a variable
psi.Arguments = String.Join(" ", "d", "app.apk");
//leave it to the application, not the OS to launch the file
psi.UseShellExecute = false;
//choose to not create a window
psi.CreateNoWindow = true;
//set the window's style to 'hidden'
psi.WindowStyle = ProcessWindowStyle.Hidden;
var proc = new Process();
proc.StartInfo = psi;
proc.Start();
proc.WaitForExit();
主な問題:
cmd /c
不要な場合の使用これを試して :
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.WaitForExit();