1
cmdを使用してEXEファイルを実行する方法があります。このEXEファイルは、初期化中に例外が発生し、システム上でプロセスを再試行して開始します。 EXEファイルを編集してその動作を変更することはできません。 コードを実行すると、例外の後、コマンドラインウィンドウがすぐに閉じました。 再試行までcmdウィンドウを開いたままにするにはどうすればよいですか?ありがとう、 Tal。 回避策cmd-cでの外部例外#
public void RunJob(Process cmdProcess)
{
cmdProcess.StartInfo.FileName = "cmd.exe";
cmdProcess.StartInfo.UseShellExecute = false;
cmdProcess.StartInfo.CreateNoWindow = true;
cmdProcess.StartInfo.RedirectStandardOutput = true;
cmdProcess.OutputDataReceived += new DataReceivedEventHandler(form.SortOutputHandler);
cmdProcess.StartInfo.RedirectStandardError = true;
cmdProcess.ErrorDataReceived += new DataReceivedEventHandler(form.SortOutputHandler);
cmdProcess.StartInfo.RedirectStandardInput = true;
cmdProcess.StartInfo.Arguments = string.Format("/k cd \"{0}\\BinFolder\"", form.txtLocalRepo);
cmdProcess.StartInfo.Verb = "runas";
cmdProcess.Start();
StreamWriter cmdStreamWriter = cmdProcess.StandardInput;
cmdProcess.BeginOutputReadLine();
cmdStreamWriter.WriteLine("START testing.exe");
}
ウィンドウを開いたままにする必要はありません。 Process.WaitForExit()を使用してプログラムを待機させると同時に、バックアッププログラムの起動について通知するWMIイベントを受け取ることができます(初期化中に起動した実行可能ファイルが失敗したときに開始されます)。あなたは次のことをチェックするかもしれません:(受け入れられた答え、EDIT 2)https://stackoverflow.com/questions/8157548/how-to-hook-into-application-and-process-startup-in-windows –