2014年2月28日金曜日

HTAで process ID の取得

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。

0 件のコメント:

コメントを投稿