如何觸發或模擬鍵盤或滑鼠的動作?

有關Delphi 的語法, 程式, 等
回覆文章
頭像
tim
文章: 1380
註冊時間: 2008年 11月 26日, 00:49

如何觸發或模擬鍵盤或滑鼠的動作?

文章 tim »

鍵盤的部分:
1. 使用 postmessage api (限制為必須要指定 handle)
對form1觸發Tab按鍵按下事件:
PostMessage(form1.Handle, WM_KEYDOWN, VK_TAB, 0);
對Edit1觸發Enter按鍵按下事件:
PostMessage(edit1.Handle, WM_KEYDOWN, VK_RETURN, 0);
對Edit1觸發Enter按鍵放開事件:
PostMessage(edit1.Handle, WM_KEYUP, VK_F1, 0);
對Edit1觸發 1 按鍵按下事件:
PostMessage(edit1.Handle, WM_KEYDOWN, 49, 0);
對Edit1觸發 A 按鍵按下事件:
PostMessage(edit1.Handle, WM_KEYDOWN, 65, 0);

2. 使用 keybd_event api
按下 tab 鍵: keybd_event(VK_TAB, 0, 0, 0);


滑鼠的部分:
1. 使用 PostMessage API
PostMessage(Edit1.Handle, WM_LBUTTONDOWN, 0, 0);

2. 使用 mouse_event api:
模擬滑鼠按左鍵:
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);// click down
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);// click down
模擬滑鼠按Double Click:
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);// click down
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);// click down
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);// click down
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);// click down
模擬滑鼠按右鍵:
mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0);// click down
mouse_event(MOUSEEVENTF_RIGHTUP,0,0,0,0);// click down


KTop 論壇上的相關文章資料:

http://delphi.ktop.com.tw/topic.asp?topic_id=284
http://delphi.ktop.com.tw/topic.asp?topic_id=285
http://delphi.ktop.com.tw/topic.asp?topic_id=22301
http://delphi.ktop.com.tw/topic.asp?TOPIC_ID=20899
http://delphi.ktop.com.tw/topic.asp?topic_id=23597
http://delphi.ktop.com.tw/topic.asp?topic_id=29977

http://delphi.ktop.com.tw/topic.asp?topic_id=32279
多多留言, 整理文章, 把經驗累積下來.....
回覆文章