2011年12月26日月曜日

[ExcelVBA] GetDesktopWindow

 
■説明
デスクトップウィンドウのハンドルを取得する関数です。

■宣言
Declare Function GetDesktopWindow Lib "user32" () As Long
戻り値:ウィンドウハンドル

■サンプルコード
Option Explicit

Declare Function GetDesktopWindow Lib "user32" () As Long

Sub SampleCode1()
    Dim hwnd As Long
    hwnd = GetDesktopWindow()
    
    Debug.Print hwnd
End Sub
説明するまでもない簡単なコードです。
ただし、ウィンドウのハンドルがわかっただけでは、うれしくもないので
他の関数に渡して活用してみます。

例えば…デスクトップサイズの取得。
Option Explicit

Declare Function GetDesktopWindow Lib "user32" () As Long
Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long

Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

Sub SampleCode2()
    Dim hwnd As Long
    hwnd = GetDesktopWindow()
    
    Dim Re As RECT
    Dim Result As Long
    Result = GetWindowRect(hwnd, Re)
    
    Debug.Print "Width :" & (Re.Right - Re.Left)
    Debug.Print "Heihgt:" & (Re.Bottom - Re.Top)
End Sub
 

0 件のコメント: