現時点では、ProcessStartInfo を使用して CMD の小さなラッパーを開発しており、コマンド ウィンドウをエミュレートして、どうしても必要な追加機能を追加しようとしています。
この WINFORM アプリケーションはマルチタブ アプリであるため、複数の「セッション」を開始できます。さらに、コンテンツはリッチテキストボックスに保存されるため、簡単にコピーでき、さらに重要なことに、コンソール ログを検索できます。
今まではすべて問題なく動作しているように見えましたが、現在のディレクトリを尋ねると、このアプリの場所が表示されます。これは問題ありません。しかし、1 つ上のディレクトリに移動すると、機能しないようです。
私は何か間違ったことをしていると確信しています。それが何であるか、私が間違っていることを指摘できますか?コードの実行を扱うコードの抜粋を次に示します。
System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd");
procStartInfo.RedirectStandardOutput = true;
procStartInfo.RedirectStandardError = true;
procStartInfo.RedirectStandardInput = true;
procStartInfo.UseShellExecute = false;
// Do not create window.
procStartInfo.CreateNoWindow = true;
// Now we create a process, assign its ProcessStartInfo and start it
proc = new System.Diagnostics.Process();
proc.StartInfo = procStartInfo;
proc.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(onOutputDataReceived);
proc.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(onErrorDataReceived);
proc.Start();
proc.StandardInput.WriteLine("/c " + cmd);
proc.StandardInput.Close();
proc.BeginOutputReadLine();
proc.BeginErrorReadLine();
proc.WaitForExit();