2011年12月26日月曜日

[ExcelVBA] WindowsAPI 一覧


■はじめに
WindowsAPIを学習するにあたって、日々わかったことをまとめていく予定です。
まずは、学習し始めに知っておくと少しは楽になるかもしれない内容をまとめたのでそちらからどうぞ
WindowsAPIについて

※注:コードの検証は、XP、Office2003でしか行なっておりません。

■API一覧
API内容
BringWindowToTopウィンドウをZオーダーの先頭に持ってくる
EnumWindows画面上のすべてのトップレベルウィンドウを列挙する
FindWindowクラス名やウィンドウ名からウィンドウハンドルを取得
FindWindowEx親ハンドル、クラス名、ウィンドウ名から子ハンドルを取得
GetClassNameウィンドウが属するクラスの名前を取得
GetDesktopWindowデスクトップのハンドルを取得
GetWindowRectウィンドウ全体の座標を取得
SendMessageメッセージをウィンドウへ送信
Sleepスレッドの実行を指定の時間だけ中断する


■宣言一覧
  1. Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As LongAs Long  
  2.   
  3. Declare Function EnumWindows Lib "user32.dll" (ByVal lpEnumFunc As Long, lParam As LongAs Long  
  4.   
  5. Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" _  
  6.     (ByVal lpClassName As StringByVal lpWindowName As StringAs Long  
  7.   
  8. Declare Function GetClassName Lib "user32" Alias "GetClassNameA" _  
  9.     (ByVal hwnd As LongByVal lpClassName As StringByVal nMaxCount As LongAs Long  
  10.   
  11. Declare Function GetDesktopWindow Lib "user32" () As Long  
  12.   
  13. Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long  
  14. Type RECT  
  15.     Left As Long  
  16.     Top As Long  
  17.     Right As Long  
  18.     Bottom As Long  
  19. End Type  
  20.   
  21. Declare Function MoveWindow Lib "user32.dll" _  
  22.         (ByVal hwnd As LongByVal x As LongByVal y As Long, _  
  23.          ByVal nWidth As LongByVal nHeight As LongByVal bRepaint As LongAs Long  
  24.   
  25. Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" _  
  26.     (ByVal hWnd As LongByVal MSG As Long, _  
  27.      ByVal wParam As LongByVal lParam As LongAs Long  
  28.   
  29. Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long)  
  30.   
  31.   
  32. '■SendMessageで使用  
  33. Const BM_CLICK = &HF5       'Clickする        第三:0, 第四:0, Ret:なし  
  34. Const WM_GETTEXT = &HD       'Textを取得する  第三:受取る文字数, 第四:受取る為の変数  
  35. Const WM_GETTEXTLENGTH = &HE '文字数を取得する 第三:0, 第四:0, Ret:バイト数  
  36. Const WM_CLOSE = &H10            '閉じる           第三:0, 第四:0, Ret:なし  


■さんぷるこーど
EnumWindow関数を使って楽にハンドルを取得したい

0 件のコメント: