HTAで process ID の取得
ブラウザでタグ入力するためにHTAを使っているが、process ID を取得する方法が分からなくて手動でフォームに入力してた。こないだやり方に気がついたのでメモ。
function getPID(){ <!-- //PID取得,formにセット // --> var Wsh = new ActiveXObject("WScript.shell"); var exeObj = Wsh.exec('tasklist /FI "imagename eq firefox.exe" /fo table /nh'); //コマンド実行終了まで待つ。 while(exeObj.status == 0){ //statusが実行中の場合0 Wsh.Run( "nircmdc wait 100" ,0,true); } var retStr = exeObj.stdOut.readAll(); var ary = retStr.split(/\s+/); document.form1.pID.value = ary[2]; }
tasklist というコマンドを実行して、その結果を利用する。
nircmdc というのは sleep の代わりに使っている。便利コマンド集みたいなtool。