国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用程序模擬鍵盤和鼠標鍵盤

2019-11-18 18:47:22
字體:
來源:轉載
供稿:網友
在Windows大行其道的今天,windows界面程序受到廣大用戶的歡迎。對這些程序的操作不外乎兩種,鍵盤輸入控制和鼠標輸入控制。有時,對于繁雜的,或重復性的操作,我們能否通過編制程序來代替手工輸入,而用程序來模擬鍵盤及鼠標的輸入呢?答案是肯定的。這主要是通過兩個API函數來實現的。   

  下面以Delphi為例來介紹一下如何實現這兩個功能。模擬鍵盤我們用Keybd_event這個api函數,模擬鼠標按鍵用mouse_event函數。大家不用擔心,在delphi里調用api函數是很方便的事。   

  先介紹一下Keybd_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)函數一起使用,與Keybd_event類似,mouse_event有五個參數,第一個為選項標志,為MOUSEEVENTF_LEFTDOWN時表示左鍵按下,為MOUSEEVENTF_LEFTUP表示左鍵松開,向系統發送相應消息。第二三個參數分別表示x,y相對位置,一般可設為0,0,第四五個參數并不重要,一般也可設為0,0。若要得到Keybd_event和mouse_event函數的更詳細的用法,可以查閱msdn或delphi幫助。下面是關于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;鼠標單擊 完也要松開, 不然可能影響程序的功能。  
 
   好了,希望本文能讓你對模擬鍵盤和鼠標按鍵有個初步的了解,如果想更深入的了解其中的奧妙,可以查閱詳實的msdn在線幫助,并多多動手實踐。如果對程序有不明白的地方,可以到coolbaby.delphibbs.com下載相應的源程序。


上一篇:Cookie的建立使用

下一篇:關于Windows2000透明窗體的制作

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 喀喇| 原平市| 永登县| 满城县| 应城市| 苗栗市| 绥阳县| 新邵县| 榆林市| 巩义市| 雅江县| 保山市| 东方市| 新邵县| 苍南县| 穆棱市| 龙游县| 陇西县| 怀集县| 克什克腾旗| 阳新县| 游戏| 乐山市| 南昌市| 阿图什市| 和平县| 吉首市| 麻栗坡县| 泰兴市| 崇州市| 阿荣旗| 凯里市| 海兴县| 郓城县| 搜索| 玛纳斯县| 巫山县| 尚义县| 信阳市| 东丰县| 喜德县|