在Linux中使用Python模拟键盘按键

本网站用的阿里云ECS,推荐大家用。自己搞个学习研究也不错
之前在做自动化测试中需要用Python在linux中模拟Ctrl+V 进行路径粘贴,试了很多种方法,起初用了xerox和pyperclip这两个python库,但打开对话框后调用粘贴API无法进行粘贴,不知道为什么。

然后发现了virtkey这个库,这个库可以在linux 中模拟键盘按键,但网上资料甚少。这个库主要有两个API

1、press_keysym/release_keysym

2、press_unicode/release_unicode

第一个接受keysym作为参数,第二个接受键盘的unicode,键盘unicode用来模拟字母键还是很方便的,但要模拟Ctrl这样的键一直没找到方法,最终找到了一个关于keysym的表,解决了问题,表如下

.keysym

 
 
.keycode

 
 
.keysym_num

 
 
Key

 
 
Alt_L

 
 
64

 
 
65513

 
 
左手边的Alt键

 
 
Alt_R

 
 
113

 
 
65514

 
 
右手边的Alt键

 
 
BackSpace

 
 
22

 
 
65288

 
 
BackSpace

 
 
Cancel

 
 
110

 
 
65387

 
 
Pause Break

 
 
Caps_Lock

 
 
66

 
 
65549

 
 
CapsLock

 
 
Control_L

 
 
37

 
 
65507

 
 
左手边的Control键

 
 
Control_R

 
 
109

 
 
65508

 
 
右手边的Control键

 
 
Delete

 
 
107

 
 
65535

 
 
Delete

 
 
Down

 
 
104

 
 
65364

 
 
方向键:下

 
 
End

 
 
103

 
 
65367

 
 
End

 
 
Escape

 
 
9

 
 
65307

 
 
Esc

 
 
Execute

 
 
111

 
 
65378

 
 
系统调用

 
 
F1

 
 
67

 
 
65470

 
 
F1

 
 
F2

 
 
68

 
 
65471

 
 
F2

 
 
Fi

 
 
66+i

 
 
65469+i

 
 
Fi

 
 
F12

 
 
96

 
 
68481

 
 
F12

 
 
Home

 
 
97

 
 
65360

 
 
Home

 
 
Insert

 
 
106

 
 
65379

 
 
Insert

 
 
Left

 
 
100

 
 
65361

 
 
方向键:左

 
 
Linefeed

 
 
54

 
 
106

 
 
Linefeed(Ctrl-j)

 
 
KP_0

 
 
90

 
 
65438

 
 
数字键:0

 
 
KP_1

 
 
87

 
 
65436

 
 
数字键:1

 
 
KP_2

 
 
88

 
 
65433

 
 
数字键:2

 
 
KP_3

 
 
89

 
 
65435

 
 
数字键:3

 
 
KP_4

 
 
83

 
 
65430

 
 
数字键:4

 
 
KP_5

 
 
84

 
 
65437

 
 
数字键:5

 
 
KP_6

 
 
85

 
 
65432

 
 
数字键:6

 
 
KP_7

 
 
79

 
 
65429

 
 
数字键:7

 
 
KP_8

 
 
80

 
 
65431

 
 
数字键:8

 
 
KP_9

 
 
81

 
 
65434

 
 
数字键:9

 
 
KP_Add

 
 
86

 
 
65451

 
 
运算键:+

 
 
KP_Begin

 
 
84

 
 
65437

 
 
小键盘:5号键

 
 
KP_Decimal

 
 
91

 
 
65439

 
 
“.”键

 
 
KP_Delete

 
 
91

 
 
65439

 
 
Delete

 
 
KP_Divide

 
 
112

 
 
65455

 
 
“/”键

 
 
KP_Down

 
 
88

 
 
65433

 
 
方向键:下

 
 
KP_End

 
 
87

 
 
65436

 
 
End

 
 
KP_Enter

 
 
108

 
 
65421

 
 
Enter

 
 
KP_Home

 
 
79

 
 
65429

 
 
Home

 
 
KP_Insert

 
 
90

 
 
65438

 
 
Insert

 
 
KP_Left

 
 
83

 
 
65430

 
 
方向键:左

 
 
KP_Multiply

 
 
63

 
 
65450

 
 
运算键:*

 
 
KP_Next

 
 
89

 
 
65435

 
 
PageDown

 
 
KP_Prior

 
 
81

 
 
65434

 
 
PageUp

 
 
KP_Right

 
 
85

 
 
65432

 
 
方向键:右

 
 
KP_Subtract

 
 
82

 
 
65453

 
 
“-”键

 
 
KP_Up

 
 
80

 
 
65431

 
 
方向键:上

 
 
Next

 
 
105

 
 
65366

 
 
PageDown

 
 
Num_Lock

 
 
77

 
 
65407

 
 
NumLock

 
 
Pause

 
 
110

 
 
65299

 
 
Pause

 
 
Print

 
 
111

 
 
65377

 
 
PrintScreen

 
 
Prior

 
 
99

 
 
65365

 
 
PageUp

 
 
Return

 
 
36

 
 
65293

 
 
回车键

 
 
Right

 
 
102

 
 
65363

 
 
方向键:右

 
 
Scroll_Lock

 
 
78

 
 
65300

 
 
ScrollLock

 
 
Shift_L

 
 
50

 
 
65505

 
 
左手边的Shift键

 
 
Shift_R

 
 
62

 
 
65506

 
 
有手边的Shift键

 
 
Tab

 
 
23

 
 
65289

 
 
Tab

 
 
Up

 
 
98

 
 
65362

 
 
方向键:上

至此,我们可以写出模拟Ctrl+V的代码

import virtkey
import time

v = virtkey.virtkey()
v.press_keysym(65507) #Ctrl键位
v.press_unicode(ord(‘v’)) #模拟字母V
v.release_unicode(ord(‘v’))
v.release_keysym(65507)
time.sleep(5)
v.press_keysym(65421) #Enter
v.release_keysym(65421)

推荐阅读:

Python脚本获取Linux系统信息 http://www.linuxidc.com/Linux/2013-08/88531.htm

Python文件处理:读取文件 http://www.linuxidc.com/Linux/2013-08/88496.htm

如何发布自定义的Python模块 http://www.linuxidc.com/Linux/2013-08/88495.htm

Python爬虫多线程抓取代理服务器 http://www.linuxidc.com/Linux/2013-07/87289.htm

Python中re(正则表达式)模块详解 http://www.linuxidc.com/Linux/2013-08/88588.htm

Python 的详细介绍:<a title="Python" href="../../Linux/

未经允许不得转载:演道网 » 在Linux中使用Python模拟键盘按键

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册