2016-05-23 3 views
0

私はコマンドモードで(シーンの裏に)プログラムを実行していて、そのデータをフォームウィンドウに出力しています。私は、特定の行(すなわち、「失敗したファイル名を指定して実行」)読んだとき、私はこのコードを使用してプログラムを閉じよう:一部のコンピュータでtclベースのコマンドシェルをプログラムから終了する方法は?

if (line.Contains("run failed")) 
    Process[] runProc = Process.GetProcessesByName("abc"); 
    if (runProc .Length == 1) 
     runProc [0].Kill(); 

それは私が受け取る他に、正常に動作します:「アクセスが拒否されました」。 私はそれがユーザー特権に関係していると思います。

私の質問はどうやってプロセスを別の方法で殺すことができますか?

プロセスは、Tclモードで実行されます(それが重要かどうかを知りません)と私は、フォームウィンドウの出力の最後の行を参照してくださいです:

abc% 

(ABCプログラムです)。明らかに、プログラムのコマンドプロンプトが表示されます。それは、コマンド・ウィンドウで実行されていた場合 、私は、コマンドウィンドウに入力しているだろう:

「を終了し」とプログラムが終了し、終了しているだろう。

何か問題があった場合、tclに「終了」を送信するにはどうすればよいですか?

答えて

2

現在のプロセスの実行を中止するTclコマンドは、exitです。デフォルトでは、コード0で「正常終了」します。 exit 1(またはそれ以上の数字、127までの数値は移植性があります)を使用すると、失敗を示すゼロ以外の終了コードを使用できます。

Tclサブプロセスで実行するコードをスクリプトに変換して、エラー時に自動的に終了するようにしてください。あなたがインタラクティブに動いているときだけ、それはしません。

関連する問題