2

1行で質問するのは簡単ではないので、主題は多くを語らない. レジストリから読み取ったいくつかのプログラムを実行する必要があります。誰かがパスと引数全体を保存するフィールドから読み取る必要があります。
プログラムの名前とその引数を設定するSystem.Diagnostics.ProcessStartInfoを使用してきましたが、プロセス実行可能ファイルを1つのフィールドに保存し、その引数を別のフィールドに保存するために解析する必要があるさまざまな引数を見つけました。

文字列全体をそのまま実行する方法はありますか?

4

3 に答える 3

6

上記のポスターと同じ方法で、cmd.exe とプロセス開始情報を使用して、これに取り組みました。

Process myProcess = New Process;
myProcess.StartInfo.FileName = "cmd.exe";
myProcess.StartInfo.Arguments = "/C " + cmd;
myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
myProcess.StartInfo.CreateNoWindow = True;
myProcess.Start();
myProcess.WaitForExit();
myProcess.Close();

cmd /c コマンドを実行し、終了します。実行時間が長すぎる場合、WaitForExit はプロセスを終了します。

于 2008-10-21T02:15:35.817 に答える
0

実際、いくつかあります。

  1. /C[コマンドライン]を引数としてcmd.exeを呼び出すことができます。これにより、cmd.exeがコマンドを処理してから、終了します。
  2. コマンドをバッチファイルに書き込んで起動することができます。

そしてもちろん、現在採用しているアプローチ、つまりコマンドラインの解析もあります。

于 2008-10-20T22:53:50.203 に答える