System.Diagnostics.Process クラスを使用してリモート マシン上にプロセスを作成する場合、これを防ぐことが望ましい場合があります。コンソールウィンドウの表示。ただし、CreateNoWindow プロパティと WindowStyle プロパティの設定だけでは必ずしも十分とは限りません。
考えられる解決策の 1 つは、UseShellExecute プロパティと前述の設定の間の相互作用から生じます。 MSDN ドキュメントによると:
UseShellExecute プロパティが true であるか、UserName プロパティと Password プロパティが null でない場合、CreateNoWindow プロパティ値は無視され、新しいウィンドウが作成されます。
したがって、次のことが保証されます。 UseShellExecute を false に設定することは、ウィンドウを効果的に抑制するために重要です。次のコード サンプルは、このアプローチを示しています。
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; }
以上がC# でプロセスを開始するときにコンソール ウィンドウを非表示にするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。