2011年12月26日月曜日

[ExcelVBA] GetDesktopWindow

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

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

■サンプルコード
  1. Option Explicit  
  2.   
  3. Declare Function GetDesktopWindow Lib "user32" () As Long  
  4.   
  5. Sub SampleCode1()  
  6.     Dim hwnd As Long  
  7.     hwnd = GetDesktopWindow()  
  8.       
  9.     Debug.Print hwnd  
  10. End Sub  
説明するまでもない簡単なコードです。
ただし、ウィンドウのハンドルがわかっただけでは、うれしくもないので
他の関数に渡して活用してみます。

例えば…デスクトップサイズの取得。
  1. Option Explicit  
  2.   
  3. Declare Function GetDesktopWindow Lib "user32" () As Long  
  4. Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long  
  5.   
  6. Type RECT  
  7.     Left As Long  
  8.     Top As Long  
  9.     Right As Long  
  10.     Bottom As Long  
  11. End Type  
  12.   
  13. Sub SampleCode2()  
  14.     Dim hwnd As Long  
  15.     hwnd = GetDesktopWindow()  
  16.       
  17.     Dim Re As RECT  
  18.     Dim Result As Long  
  19.     Result = GetWindowRect(hwnd, Re)  
  20.       
  21.     Debug.Print "Width :" & (Re.Right - Re.Left)  
  22.     Debug.Print "Heihgt:" & (Re.Bottom - Re.Top)  
  23. End Sub  
 

0 件のコメント: