sendmessage()模擬鼠標點擊


{鼠標軟模擬:好處就是不會真的移動鼠標  開始按鈕 坐標 x=386y=387 }
sendmessage(hookHwnd,messages.WM_LBUTTONDOWN ,0,$0180017A); {按下鼠標左鍵}
sendmessage(hookHwnd,messages.WM_LBUTTONUP ,0, $0180017A); {抬起鼠標左鍵}
{硬件模擬:會真的移動鼠標}
mouse_event(MOUSEEVENTF_LEFTDOWN,X ,Y ,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,X ,Y ,0,0);

     函數功能  

  該函數將指定的消息發送到一個或多個窗口。此函數為指定的窗口調用窗口程序,直到窗口程序處理完消息再返回。而函數PostMessage不同,將一個消息寄送到一個線程的消息隊列后立即返回。

     函數原型

  LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam);

 

  參數:

  hWnd:其窗口程序將接收消息的窗口的句柄。如果此參數為HWND_BROADCAST,則消息將被發送到系統中所有頂層窗口,包括無效或不可見的非自身擁有的窗口、被覆蓋的窗口和彈出式窗口,但消息不被發送到子窗口。

  Msg:指定被發送的消息。

  wParam:指定附加的消息特定信息。

  IParam:指定附加的消息特定信息。

  返回值:返回值指定消息處理的結果,依賴於所發送的消息。

  備注:需要用HWND_BROADCAST通信的應用程序應當使用函數RegisterWindowMessage來為應用程序間的通信取得一個唯一的消息。

  如果指定的窗口是由正在調用的線程創建的,則窗口程序立即作為子程序調用。如果指定的窗口是由不同線程創建的,則系統切換到該線程並調用恰當的窗口程序。線程間的消息只有在線程執行消息檢索代碼時才被處理。發送線程被阻塞直到接收線程處理完消息為止。

  Windows CE:Windows CE不支持Windows桌面平台支持的所有消息。使用SendMesssge之前,要檢查發送的消息是否被支持。

  速查:Windows NT:3.1及以上版本:Windows:95及以上版本;Windows CE:1.0及以上版本;頭文件:winuser.h;輸入庫:user32.lib;Unicode:在Windows NT環境下以Unicode和ANSI方式實現。

  SendMessage函數使用實例

  程序控制拉下或收起組合框的下拉列來

  一般情況下,為了拉下或收起組合框的下拉列表,需要用鍵盤或鼠標進行操作,而有時我們希望程序運行的某個時刻自動拉出下拉列表(比如在一些演示程序中),為了實現這個目的,我們也只有借助於SendMessage函數,方法是發一個CB_SHOWDROPDOWN(&H14F)消息給組合框。

  在發CB_SHOWDROPDOWN消息時,wParam參數決定了是拉下列表(=True時)還是收起列表(=False時),lParam無用(設為0)。

 
 
分類: 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM