ウィンドウに関するデータを取得
Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long) As Long
Declare Function GetWindowInteger Lib "user32.dll" Alias "GetWindowIntegerA" _
(ByVal hWnd As Integer, ByVal nIndex As Integer) As Integer
LONG GetWindowLong(
HWND hWnd,
int nIndex
);
引数
hWnd
取得対象のウィンドウのハンドルnIndex
取得する項目を示す定数戻り値
正常終了のとき nIndexで指定した項目に対する値nIndexの定数
エラーのとき 0
サンプル
GWL_EXSTYLE = (-20) 拡張ウィンドウスタイル
GWL_STYLE = (-16) ウィンドウスタイル
GWL_WNDPROC = (-4) ウィンドウ関数のアドレス
GWL_HINSTANCE = (-6) インスタンスハンドル
GWL_HWNDPARENT = (-8) 親ウィンドウのハンドル
GWL_ID = (-12) ウィンドウのID
GWL_USERDATA = (-21) ユーザ定義の32ビット値
ダウンロード(GetWindowLong.lzh 1.77KB)Private Sub Timer1_Timer()
Me.List1.Clear
Dim rc As Long
Dim Pos As PointApi, hWnd As Long
'現在のマウス位置を取得
rc = GetCursorPos(Pos)
'現在のマウス位置にあるウィンドウのハンドル取得
hWnd = WindowFromPoint(Pos.X, Pos.Y)
With Me.List1
.AddItem "拡張ウィンドウスタイル &H" + Hex(GetWindowLong(hWnd, GWL_EXSTYLE))
.AddItem "ウィンドウスタイル &H" + Hex(GetWindowLong(hWnd, GWL_STYLE))
.AddItem "ウィンドウ関数のアドレス &H" + Hex(GetWindowLong(hWnd, GWL_WNDPROC))
.AddItem "インスタンスハンドル &H" + Hex(GetWindowLong(hWnd, GWL_HINSTANCE))
.AddItem "親ウィンドウのハンドル &H" + Hex(GetWindowLong(hWnd, gwl_hwndparent))
.AddItem "ウィンドウのID &H" + Hex(GetWindowLong(hWnd, GWL_ID))
.AddItem "ユーザー定義の32ビット値 &H" + Hex(GetWindowLong(hWnd, GWL_USERDATA))
End With
End Sub