pywin安裝模組:
import win32api
import win32con
win32api.keybd_event(17,0,0,0) #ctrl鍵位碼是17
win32api.keybd_event(86,0,0,0) #v鍵位碼是86
win32api.keybd_event(86,0,win32con.keyeventf_keyup,0) #釋放按鍵
win32api.keybd_event(17,0,win32con.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
這個函式在user32.dll這個庫檔案裡面。我們可以在c:\windows\system32(xp系統)這個目錄下找到這個檔案,他是系統自帶的。 我們以c#直接呼叫這個檔案中的api為例子來說下怎麼進行滑鼠操作,首先在我們c#中宣告引用,如果是乙個基於from的程式,這個宣告的位置寫在你的from class就可以了
[system.runtime.interopservices.dllimport("user32")]
private static extern int mouse_event(int dwflags, int dx, int dy, int cbuttons, int dwextrainfo);
引數 意義
dwflags long,下表中標誌之一或它們的組合
dx,dy long,根據mouseeventf_absolute標誌,指定x,y方向的絕對位置或相對位置
cbuttons long,沒有使用
dwextrainfo long,沒有使用
dwflags常數 意義
const int mouseeventf_move = 0x0001; 移動滑鼠
const int mouseeventf_leftdown = 0x0002; 模擬滑鼠左鍵按下
const int mouseeventf_leftup = 0x0004; 模擬滑鼠左鍵抬起
const int mouseeventf_rightdown = 0x0008; 模擬滑鼠右鍵按下
const int mouseeventf_rightup = 0x0010; 模擬滑鼠右鍵抬起
const int mouseeventf_middledown = 0x0020; 模擬滑鼠中鍵按下
const int mouseeventf_middleup = 0x0040; 模擬滑鼠中鍵抬起
const int mouseeventf_absolute = 0x8000; 標示是否採用絕對座標
程式中我們直接呼叫mouse_event函式就可以了
mouse_event(mouseeventf_absolute | mouseeventf_move, 500, 500, 0, 0);
1、這裡是滑鼠左鍵按下和鬆開兩個事件的組合即一次單擊:
mouse_event (mouseeventf_leftdown | mouseeventf_leftup, 0, 0, 0, 0 )
2、模擬滑鼠右鍵單擊事件:
mouse_event (mouseeventf_rightdown | mouseeventf_rightup, 0, 0, 0, 0 )
3、兩次連續的滑鼠左鍵單擊事件 構成一次滑鼠雙擊事件:
mouse_event (mouseeventf_leftdown | mouseeventf_leftup, 0, 0, 0, 0 )
mouse_event (mouseeventf_leftdown | mouseeventf_leftup, 0, 0, 0, 0 )
4、使用絕對座標
mouseeventf_absolute | mouseeventf_move, 500, 500, 0, 0
需要說明的是,如果沒有使用mouseeventf_absolute,函式預設的是相對於滑鼠當前位置的點,如果dx,和dy,用0,0表示,這函式認為是當前滑鼠所在的點。5、直接設定絕對座標並單擊
mouse_event(mouseeventf_leftdown, x * 65536 / 1024, y * 65536 / 768, 0, 0);
mouse_event(mouseeventf_leftup, x * 65536 / 1024, y * 65536 / 768, 0, 0);
其中x,y分別是你要點選的點的橫座標和縱座標
而鍵盤模擬用 keybd_event()
keybd_event能觸發乙個按鍵事 件,也就是說回產生乙個wm_keydown或wm_keyup訊息。當然也可以用產生這兩個訊息來模擬按鍵,但是沒有直接用這個函式方便。 keybd_event共有四個引數,第乙個為按鍵的虛擬鍵值,如回車鍵為vk_return, tab鍵為vk_tab。第二個引數為掃瞄碼,一般不用 設定,用0代替就行。第三個引數為選項標誌,如果為keydown則置0即可,如果為keyup則設成「keyeventf_keyup」,第四個引數一 般也是置0即可。
Python模擬鍵盤輸入
2.程式實現 import win32api import win32con win32api.keybd event 17,0,0,0 ctrl鍵位碼是17 win32api.keybd event 86,0,0,0 v鍵位碼是86 win32api.keybd event 86,0,win32c...
python 模擬鍵盤輸入
備忘錄 import win32api import win32con win32api.keybd event 17,0,0,0 ctrl鍵位碼是17 win32api.keybd event 86,0,0,0 v鍵位碼是86 win32api.keybd event 86,0,win32con....
用Delphi模擬鍵盤輸入
在windows大行其道的今天,windows介面程式受到廣大使用者的歡迎。對這些程式的操作不外乎兩種,鍵盤輸入控制和滑鼠輸入控制。有時,對於繁雜的,或重複性的操作,我們能否通過編制程式來代替手工輸入,而用程式來模擬鍵盤及滑鼠的輸入呢?答案是肯定的。這主要是通過兩個api函式來實現的。下面以delp...