函數原型:B00L PostMessage(HWND hWnd,UINT Msg,WPARAM wParam,lparam lparam);
參數
窗口程序接收消息的窗口的句柄。可以取兩個具有特定含義的值:
HWND。廣播:消息被發送到系統的所有頂層窗口,包括無效或不可見的非自有窗口、覆蓋窗口和彈出窗口。消息不會發送到子窗口。
NULL:該函數的操作與調用PostThreadMessage函數相同,將參數dwThread設置為當前線程的標識符。
Msg:指定要發送的消息。
WParam:指定特定於消息的附加信息。
IParam:指定特定於消息的附加信息。
返回值:如果函數調用成功,返回非零值;如果函數調用失敗,返回值為零。要獲得更多錯誤信息,請調用GetLastError函數。
例子:遊戲掛機。如果壹個簡單的遊戲只靠點擊鼠標就掛了,那麽我們可以用VB做壹個簡單的插件,用SetCursorPos()等函數把鼠標移動到指定的位置點擊,但這種情況下遊戲界面必須在前臺。但是如果使用postmessage()函數,即使遊戲最小化,鼠標點擊事件仍然可以發送到遊戲中。這就是郵件的好處。試試下面的例子:
API聲明
私有聲明函數PostMessage Lib“user 32”別名“PostMessageA”(ByVal hwnd為Long,ByVal wMsg為Long,ByVal wParam為Long,ByVal lParam為Long)為Long
私有聲明函數FindWindow Lib "user32 "別名" FindWindowA" (ByVal lpClassName為字符串,ByVal lpWindowName為字符串)為Long
私有聲明子睡眠庫“kernel 32”(ByVal dw milliseconds壹樣長)
常數聲明
私有常量WM _ LBUTTONDBLCLK = & ampH203
私有常量WM _ LBUTTONDOWN = & ampH201
私有常量WM _ LBUTTONUP = & ampH202
私有常量WM _ MBUTTONDBLCLK = & ampH209
私有Const WM _ MBUTTONDOWN = & ampH207
私有Const WM _ MBUTTONUP = & ampH208
私有常量WM _ RBUTTONDBLCLK = & ampH206
私有常量WM _ RBUTTONDOWN = & ampH204
私有常量WM _ RBUTTONUP = & ampH205
私有子命令1_Click()
Dim lpClassName為String,lpWindowName為String,hWndX為Long
LpClassName = "在這裏填寫遊戲窗口的類名。"可以用VB企業版自帶的SPY++工具查看遊戲窗口的類名和標題。
LpWindowName = "在此填寫遊戲窗口的標題"
Hwndx = FindWindow (LP類名,LP窗口名)'這壹步是獲取遊戲窗口的句柄,發送消息時需要用到。
Dim wMsg為Long,wParam為Long,lParam為Long,Rx為Long,xx為Integer,yy為Integer
Xx=100 '單擊X坐標。
Yy=100 '點擊Y坐標。
WMsg = WM_LBUTTONDOWN '左鍵單擊該消息。
wParam = 1
lParam =yy*65536+xx
調用postmessage (hwndx,wmsg,wparam,lparam)'發送消息。
睡眠300
WMsg = WM_LBUTTONUP '左鍵單擊引發消息。
wParam = 1
lParam = yy*65536+xx
調用postmessage (hwndx,wmsg,wparam,lparam)'發送消息。
末端接頭
這個程序的目的是實現遊戲中的鼠標點擊~ ~ ~ ~ ~比如100 438+000的位置。