« URLを構成要素に分解する。 | トップページ | 文字列の繰り返し関数はないの? »

2007年5月 4日 (金)

すべてのウィンドウを元のサイズに戻す。

Shell.Applicationを使えば、すべてのウィンドウを最小化したり、表示されてるウィンドウを並べて表示することはできますが、すべてのウィンドウを元のサイズに戻す機能がありません。そこで、以下のHTAを実行します。

RestoreAllWindows.hta

<html>
<head>
<script language=vbscript>
resizeTo 0,0
Set wShell=CreateObject("WScript.Shell")
k=0
</script>
<hta:application/>
<script language=vbscript>
Sub window_onload()
wShell.SendKeys "%+{Tab}"
setTimeout "restore",10,"VBScript"
End Sub
Sub restore()
k=k+1
If document.hasFocus() Then
'  MsgBox k,vbInformation
  close
ElseIf k<100 Then
  wShell.SendKeys "%+{Tab}"
  setTimeout "restore",10,"VBScript"
Else
  MsgBox k,vbCritical
  close
End If
End Sub
</script>
</head><body></body></html>

Alt + Shft + Tabキーで、Zオーダの低い順にアクティブにします。一周を判定するため、HTAのdocument.hasFocus()を利用します。念の為、100回で打ち切るようにしています。

タスクマネジャを開いていると終了判定を邪魔するようです。

« URLを構成要素に分解する。 | トップページ | 文字列の繰り返し関数はないの? »