http://blog.sina.com.cn/s/blog_5eeb1e2f0101ax1x.html 一、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.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
其他未列出的字母和数字键盘为:ord(c)
二、 使用windll.user32实现鼠标模拟:
from ctypes import *
windll.user32.SetCursorPos(100, 100)
三. 使用AutoItX实现鼠标模拟:
#将AutoItX3.dll 文件复制到 window目录然后注册一下
regsvr32.exe AutoItX3.dll
from win32com.client import Dispatch
def enter_game():
AutoItX
= Dispatch( "AutoItX3.Control" )
# Block
All Input
AutoItX.BlockInput( 1 )
AutoItX.Sleep( 20000 )
if
AutoItX.WinActivate( GAME_WINDOW_TITLE, '' ):
pass
else:
if AutoItX.WinWaitActive(
GAME_WINDOW_TITLE, '', 8 ):
pass
else:
# Unblock input
AutoItX.BlockInput( 0 )
return False
AutoItX.WinSetTitle( GAME_WINDOW_TITLE, '',
_pre_title )
AutoItX.WinSetState( _pre_title, '',
AutoItX.SW_MAXIMIZE )
AutoItX.Sleep( 5000 )
AutoItX.MouseMove( 462, 396, 10 )
AutoItX.MouseClick( "left" )
AutoItX.Sleep( 1000 )
AutoItX.Send( GAME_ACCT_NAME )
AutoItX.Sleep( 1000 )
AutoItX.MouseMove ( 462, 472, 10 )
AutoItX.MouseClick( "left" )
AutoItX.Sleep( 1000 )
AutoItX.Send( GAME_ACCT_PASS )
AutoItX.Send( "{ENTER}" )
AutoItX.Sleep( 10000 )
# Unblock
input
AutoItX.BlockInput( 0 )
return
True
四. 使用跨平台的autopy实现
五、使用autohook监控键盘操作:
from http://hi.baidu.com/jakisou/item/3c6099f7566621de6325d2a9
|