リモート プロセス作成中のコンソール ウィンドウの表示を抑制する
System.Diagnostics.Process を使用してコマンドをリモートで実行すると、ユーザーが次の問題に遭遇する可能性があります。コンソール ウィンドウが表示されるとワークフローが中断されます。 CreateNoWindow や WindowStyle などのプロパティを Hidden に設定しても、コンソール ウィンドウは表示されたままになります。
この問題を解決するには、UseShellExecute プロパティが false に設定されていることを確認することが重要です。 MSDN で説明されているように、UseShellExecute が true に設定されている場合、または UserName または Password プロパティのいずれかが null 以外の場合、CreateNoWindow は無視され、新しいウィンドウが表示されます。
この動作を修正するには、次を使用します。次のコード スニペット:
ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = fullPath; startInfo.Arguments = args; startInfo.RedirectStandardOutput = true; startInfo.RedirectStandardError = true; startInfo.UseShellExecute = false; startInfo.CreateNoWindow = true; Process processTemp = new Process(); processTemp.StartInfo = startInfo; processTemp.EnableRaisingEvents = true; try { processTemp.Start(); } catch (Exception e) { throw; }
UseShellExecute を false に設定すると、CreateNoWindow が尊重され、コンソール ウィンドウが表示されなくなります。リモートプロセスの実行中は、 が表示されます。
以上がリモートプロセスの開始時にコンソールウィンドウが表示されないようにする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。