用Delphi模擬鍵盤輸入/鼠標點擊


 模擬鍵盤我們用Keybd_event這個api函數,模擬鼠標按鍵用mouse_event函數.

Keybd_event函數能觸發一個按鍵事件,也就是會產生一個WM_KEYDOWN或WM_KEYUP消息,一般用這兩個消息來模擬一

次按鍵(按鍵的過程是:按下,然后彈起),但是沒有直接用這個函數方便。
Keybd_event共有四個參數:
第一個為按鍵的虛擬鍵值,如回車鍵為vk_return, tab鍵為vk_tab;
第二個參數為掃描碼,一般不用設置,用0代替就行;
第三個參數為選項標志,如果為keydown則置0即可,如果為keyup則設成“KEYEVENTF_KEYUP”;
第四個參數一般也是置0即可。

例如用以下代碼即可實現模擬按下i鍵,其中的$49表示i鍵的虛擬鍵值:

keybd_event($49,0,0,0);

keybd_event($49,0,KEYEVENTF_KEYUP,0);   

  

mouse_event最好配合setcursorpos(x,y)函數一起使用,先定位鼠標,再產生鼠標事件.
mouse_event有五個參數:
第一個為選項標志,為MOUSEEVENTF_LEFTDOWN時表示左鍵按下,為MOUSEEVENTF_LEFTUP表示左鍵松開,向系統發送相應消息;
第二三個參數分別表示x,y相對位置,一般可設為0,0;
第四五個參數並不重要,一般也可設為0,0。

mouse_event的示例代碼:

setcursorpos(20,132);

mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);

mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);

mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);

mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); ...

上面的代碼表示鼠標的雙擊,若要表示單擊,用兩個mouse_event即可(一次放下,一次松開)。  

注意
不管是模擬鍵盤還是鼠標事件,都要注意還原,即按完鍵要松開,一個keydown對應一個keyup;鼠標單擊 完也要松開,不然可能影響程序的功能。

 

例子1:模擬按下'A'鍵
   keybd_event(65,0,0,0);
   keybd_event(65,0,KEYEVENTF_KEYUP,0);

  例子2:模擬按下'ALT+F4'鍵
   keybd_event(18,0,0,0);
   keybd_event(115,0,0,0);
   keybd_event(115,0,KEYEVENTF_KEYUP,0);
   keybd_event(18,0,KEYEVENTF_KEYUP,0);

   附:常用模擬鍵的鍵值對照表。

                      鍵盤鍵與虛擬鍵碼對照表

      字母和數字鍵     數字小鍵盤的鍵      功能鍵        其它鍵
   鍵   鍵碼     鍵   鍵碼       鍵   鍵碼     鍵      鍵碼
   A   65       0   96        F1   112     Backspace    8
   B   66       1   97        F2   113     Tab       9
   C   67        2   98        F3   114     Clear      12
   D   68       3   99        F4   115     Enter      13
   E   69       4   100       F5   116     Shift      16
   F   70       5   101       F6   117     Control     17
   G   71       6   102       F7   118      Alt       18
   H   72       7   103       F8   119     Caps Lock    20
   I   73       8   104       F9   120     Esc       27
   J   74       9   105       F10  121     Spacebar    32
   K   75       *   106       F11  122     Page Up     33
   L   76       +   107       F12  123     Page Down    34
   M   77       Enter 108       --   --     End       35
   N   78       -   109       --   --      Home      36
   O   79       .   110       --   --      Left Arrow   37
   P   80       /   111       --   --      Up Arrow    38
   Q   81       --   --       --   --      Right Arrow   39
   R   82       --   --       --   --      Down Arrow    40
   S   83       --   --       --   --      Insert      45
   T   84       --   --       --   --      Delete      46
   U   85       --   --       --   --      Help       47
   V   86       --   --       --   --      Num Lock     144
   W   87          
   X   88      
   Y   89      
   Z   90      
   0   48      
   1   49      
   2   50       
   3   51       
   4   52       
   5   53       
   6   54       
   7   55       
   8   56       
   9   57


免責聲明!

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



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