System.Diagnostics.Processクラスを使用してリモートマシン上でプロセスを作成しようとしています。 私はプロセスを作成することができます。しかし、問題は、サービスの作成に時間がかかり、コンソールウィンドウが表示されることです。 別の厄介なことは、コンソールウィンドウが私のWindowsフォームの上に表示され、そのフォーム上で他の操作を実行できないことです。 私はCreateNoWindow = true
、Process.Startからコンソールウィンドウを隠すC#
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
などのすべてのプロパティを設定しているが、まだそれはコンソールウィンドウを示しています。私も出力とエラーを別々のストリームにリダイレクトしていますが運はありません。
コンソールウィンドウを非表示にする他の方法はありますか?私を助けてください 。
ここで私のコードの一部ですが、私はscコマンドを実行するために使用しました。
Process proc = new Process();
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.StartInfo.FileName = "sc";
proc.StartInfo.Arguments = string.Format(@"\\SYS25 create MySvc binPath= C:\mysvc.exe");
proc.StartInfo.RedirectStandardError = false;
proc.StartInfo.RedirectStandardOutput = false;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
proc.WaitForExit();
'proc.StartInfo.RedirectedStandardOutput = true'を設定しましたか?私はこれをWindowsアプリケーションで動作させるようにしました。 – Andrew
完全なソースコードサンプルを扱った最終的な解決策はどれですか? – Kiquenet
Windows *コンソール*アプリでは、UseShellExecute - リダイレクトを使用するか、それ以外のものを設定してください。 [here](https://stackoverflow.com/a/47781912/63209)を参照してください。 – Paul