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

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

http://www.dengb.com/wlaqjs/1332481.htmlwww.dengb.comtruehttp://www.dengb.com/wlaqjs/1332481.htmlTechArticle在Linux中使用Python模拟键盘按键,linuxpython 之前在做自动化测试中需要用Python在linux中模拟Ctrl+V 进行路径粘贴,试了很多种方法,起初用了...

python 模拟键盘 linux,在Linux中使用Python模拟键盘按键,linuxpython相关推荐

  1. php运行python爬虫_群晖系统中运行python爬虫程序

    重要:本文最后更新于2021-01-28 17:02:43,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗. 准备入手一台NAS,事先的学习是必须的,今天在VM虚拟机中安装好NAS后, ...

  2. TX2(Linux)在Qt中调用python函数

    实验环境:TX2使用JetPack-L4T-3.3-linux-x64_b39进行环境安装 详情参考:Jetpack3.3刷机 安装的python版本为3.5.2 1.创建Qt工程 在Qt中创建一个Q ...

  3. qt如何用python结合_在Qt(C++)中与Python混合编程

    一.PythonQt库 在Qt(C++)中与Python混合编程,可以使用PythonQt库. 网站首页:http://pythonqt.sourceforge.net 下载页面:https://so ...

  4. vim显示python嵌套级_在Vim中为Python突出显示语法

    Vim中针对Python的语法突出显示(目标是Ubuntu 12.10) 这是有关如何在Ubuntu 12.10的Python中设置语法突出显示的演练. 你所看到的就是你得到的: [https://g ...

  5. python关闭exe程序_Win 10 中使用 Python 碰到的奇怪现象

    优质文章,第一时间送达! 作者:流光飞舞 来源:https://shuhari.dev/blog/2019/11/win10-store-python 最近在使用 Python 的时候发生了很奇怪的现 ...

  6. Python 结束程序——如何在终端中退出 Python 程序

    您可以在终端中执行 Python 代码,就像在 VS Code.Atom 等 IDE 中一样.您可以在 Windows 和 Unix 操作系统(如 Linux 和 macOS)中执行此操作. 在本文中 ...

  7. python selenium 下拉列表_从下拉列表中选择python selenium选项

    我试图使用下面的代码使用selenium(python)从网页上的下拉列表中选择一个选项.在from selenium import webdriver from selenium.webdriver ...

  8. python好还是c+-嵌入式系统中,Python与C/C++哪方更为适用?

    [51CTO.com快译]长久以来,C/C++一直编译着嵌入式系统编程领域,但二者亦拥有自己的缺陷.相比之下,Python则成为嵌入式系统中的另一大***语言选项.在今天的文章中,我们将共同探讨双方的 ...

  9. python调用rust_在 Rust 代码中编写 Python 是种怎样的体验?

    本文为转载摘要,完整版请移步: https://mp.weixin.qq.com/s/YT_HNFDCQ_IyocvBkRNJnA 以下为译文: 大约一年前,我发布了一个名为inline-python ...

  10. python注入进程_向进程中注入Python代码

    我想把Python代码注入到一个进程中,当它注入时,它似乎会使我的进程崩溃.我没有在我自己的程序中得到任何错误,但目标进程停止工作.被调用的非托管api没有给我任何错误,并且似乎已经正确地执行了它们的 ...

最新文章

  1. 继承和多态 2.0 -- 继承的六个默认成员函数
  2. 轻松掌控全链路服务监控:方案概述与对比 | 真的很干!
  3. R语言画Cox回归森林图
  4. freemarker该阵列
  5. redis序列化_scrapy_redis中序列化源码及其在程序设计中的应用
  6. 知乎高赞:看懂这个颠覆世界观的认知,远比做1000道题更有用!
  7. View绘制详解(三),扒一扒View的测量过程
  8. 模拟电路--可编程数字稳压电源的设计
  9. CSS3 背景起始位置 background-origin属性
  10. 知乎首次举办上星晚会 定档除夕前夜
  11. 手机wps怎么设置语言_怎么使用手机对路由器进行设置
  12. MySQL 5.7升级到8.0详细过程
  13. 相关滤波的视觉目标跟踪算法学习
  14. [Excel图表] 搞定散点图
  15. 程序员培训班要多少米?报名很贵吗?
  16. 计算机在中医临床学的应用,中医临床学术论文(2)
  17. ECS 入门到入土: 一、什么是 ECS
  18. android获取其他app布局,关于android:如何从App的(布局)XML变量中获取Manifest版本号?...
  19. IDEA导入插件依赖后Maven报错:java.lang.RuntimeException: Cannot reconnect.
  20. 监控时代,那无处安放的隐私

热门文章

  1. 电子电路学习笔记(14)——LDO(低压差线性稳压器)
  2. macOS 安装lrzsz
  3. php imap 安装_php7安装imap扩展
  4. vb3.0 升级vb6.0_将VB6升级到VB.NET(性能改进)
  5. LANDESK操作系统部署时,怎么默认恢复到客户端C盘配置
  6. [最小割最大流 || 最短路] roadblock Dinic SPFA + SLE
  7. XShell下载安装及使用(免费版)
  8. 11G新特性 -- archival(long-term)backups
  9. 美通社企业新闻汇总 | 2019.1.23 | 上海迪士尼建疯狂动物城园区;戴森运营总部移至新加坡...
  10. KubeEdge环境搭建(支持网络插件flannel)