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

之前在做自动化测试中需要用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)

Linux下的PyQt虚拟键盘是一种软件工具,它允许用户在没有物理键盘的设备上模拟键盘输入。 PyQt是一个基于Python语言的图形用户界面(GUI)开发工具包,它提供了多种功能和工具,可以用于开发各种类型的程序,包括虚拟键盘。 虚拟键盘在一些特定场景下非常有用。比如在一些设备上,由于空间限制或其他原因无法使用物理键盘,这时通过软件实现一个虚拟键盘可以提供方便的用户输入操作。 在Linux系统,我们可以使用PyQt来开发一个虚拟键盘应用程序。这个应用程序可以使用PyQt提供的图形界面组件来创建一个界面,其包括模拟按键按钮。当用户点击这些按钮时,相应的键盘输入就会被模拟发送到系统。 实现虚拟键盘的关键是需要处理按键事件。在PyQt,我们可以使用事件处理机制来监听按钮的点击事件,并在事件发生时执行相应的操作。通过一些特定的函数和方法,我们可以将模拟键盘输入发送给系统,从而实现虚拟键盘的功能。 总结来说,Linux下的PyQt虚拟键盘是一种通过软件实现的工具,它可以模拟物理键盘的输入功能。我们可以利用PyQt提供的功能和组件来创建一个界面,并通过事件处理机制来实现按钮点击事件的监听和键盘输入的模拟发送。这样,用户就可以在没有物理键盘的设备上进行方便的输入操作。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值