2018年10月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
無料ブログはココログ

« すべてのウィンドウを元のサイズに戻す。その2 | トップページ | WindowsアプリからWScript.exeのWScriptオブジェクトを利用する。 »

2007年5月22日 (火)

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

もしExcelがあれば、以下のスクリプトで可能です。それに心配するほどに遅くはないですよ。

RestoreAllWindows.VBS

Const GW_HWNDPREV = 3
Const SW_RESTORE = 9

Set Excel=CreateObject("Excel.Application")
Tasks=Array()
hwnd=Excel.ExecuteExcel4Macro("CALL(""user32"",""FindWindowA"",""JCC"",""Progman"",""Program Manager"")")
Do
  hwnd=Excel.ExecuteExcel4Macro("CALL(""user32"",""GetWindow"",""JJJ"","& hwnd &","& GW_HWNDPREV &")")
  If hwnd=0 Then Exit Do
  If Excel.ExecuteExcel4Macro("CALL(""user32"",""IsWindowVisible"",""JJ"","& hwnd &")") Then
    If Excel.ExecuteExcel4Macro("CALL(""user32"",""IsIconic"",""JJ"","& hwnd &")") Then
      Push Tasks,hwnd
    End If
  End If
Loop

For Each hwnd In Tasks
  Excel.ExecuteExcel4Macro "CALL(""user32"",""ShowWindow"",""JJJ""," & hwnd & ","& SW_RESTORE &")"
Next

Sub Push(Items,Item)
ReDim Preserve Items(UBound(Items)+1)
Items(UBound(Items))=Item
End Sub

« すべてのウィンドウを元のサイズに戻す。その2 | トップページ | WindowsアプリからWScript.exeのWScriptオブジェクトを利用する。 »