最小化されているウィンドウの数を取得          <TOP>


最小化(アイコン化)されたウィンドウの数を取得します。
GetDesktopWindow
Windowsのデスクトップウィンドウを識別
ArrangeIconicWindows 指定された親ウィンドウが持つ最小化(アイコン化)された子ウィンドウをすべて整列

自身を除く6個がアイコン化されている。

 

'================================================================
'= 最小化されているウィンドウの数を取得
'=    (ArrangeIconicWindows.bas)
'================================================================
#include "Windows.bi"

' Windowsのデスクトップウィンドウを識別。返されるポインタは、一時的なポインタ。後で使用するために保存しておくことはできない
Declare Function Api_GetDesktopWindow& Lib "user32" Alias "GetDesktopWindow" ()

' 指定された親ウィンドウが持つ最小化(アイコン化)された子ウィンドウをすべて整列
Declare Function Api_ArrangeIconicWindows& Lib "user32" Alias "ArrangeIconicWindows" (ByVal hWnd&)

Var Shared Text1 As Object
Var Shared Button1 As Object

Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var hWnd As Long
    Var Ret As Long

    hWnd = Api_GetDesktopWindow()
    Ret = Api_ArrangeIconicWindows(ByVal hWnd)
    Text1.SetWindowText "アイコン化された数:" & Str$(Ret)
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End