便利です。
resizeToという関数を使うとウィンドウのサイズを変更できます。
HTAは何も指定しなければモニタサイズに応じて大きく表示されますので、この関数を使わないとムダに大きく表示されてしまい不便なことがしばしばあります。
resizeToも便利です。
しかしresizeToを行うHTAでF5キーを使うと、リロード前に調整していたサイズから強制的にウィンドウサイズが変更されてしまい、わりと不便です。
できればresizeToを実行するのはHTA起動時のみにして、リロード時はリロード前のウィンドウサイズを保って欲しい…と思ったのでそれを叶える関数を作成しました。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<body></body> | |
<script> | |
桁=function(s,l){var a=Array(l+1).join('0')+s,L=a.length;return a.slice(L-l,L)} | |
リロードじゃなければリサイズする=function(X,Y){ | |
var cimv2=GetObject("winmgmts:root\\CIMV2") | |
var getプロセス=function(PID){return (new Enumerator(cimv2.ExecQuery("SELECT * FROM Win32_Process where ProcessID="+PID))).item()} | |
var f=function(){ | |
// 子プロセスをcscriptにすると黒い画面が一瞬表示されてしまう。 | |
// 「//B」オプションを付けないとwscriptの設定画面が表示されてしまう。 | |
var childPID = (new ActiveXObject('WScript.Shell')).Exec('wscript //B').ProcessID | |
// 子の親(自身)のPID取得 | |
return getプロセス(childPID).ParentProcessID | |
} | |
// 1度目で取得に成功すればその値を返し、ダメなら2回目の処理を実行する。 | |
var PID=f()||f(), 時間=getプロセス(PID).UserModeTime | |
if(時間<5){resizeTo(X,Y)} | |
document.body.innerText = 時間 | |
} | |
リロードじゃなければリサイズする(300,300) | |
</script> | |
</html> |
0 件のコメント:
コメントを投稿