0

Windows で使用可能なすべての pid を tcl コーディングで取得する方法を知りたいと思っていました。これは、利用可能かどうかに基づいてプロセスを強制終了するために必要です。ありがとうございます。コード:

proc stopprogressbar {} {
  variable n_progressWinPid;
  if {[info exists n_progressWinPid]} {
    if {$n_progressWinPid > 0} {
      if {[lsearch [GETALLPIDS] $n_progressWinPid] >= 0} {
        catch {exec [auto_execok taskkill] /PID $n_progressWinPid}
      }
    }
  }
}
4

2 に答える 2

4

twapi::get_process_idsは、Windows システム上のすべての PID を返します。あなたはpackage require twapi最初にする必要があります。

ActiveTcl を使用している場合C:\Tcl\bin\teacup.exe install twapiは、コマンド プロンプトで実行 (または Tcl をインストールした場所) して TWAPI を取得します。新しい ActiveTcl バージョンにはデフォルトで含まれているかもしれませんが、わかりません。

于 2013-01-08T12:17:41.260 に答える
1

あなたの目標は、存在する場合はプロセスを強制終了することです。チェックせずに、とにかくそれを殺すのはどうですか?

package require Tclx;           # For the kill command
catch {kill $n_progressWinPid}; # Kill the process

役に立つと思われる Tclx パッケージのその他のコマンド:

id process;        # Get PID for this process
id process parent; # Get PID for the parent of this process
wait ?many options? pid; # Wait for a process

詳細については、Tclx パッケージのヘルプを参照してください。

于 2013-01-08T07:49:25.293 に答える