linux模拟键盘按键方案(收藏)

在这以前,我一直以为,除非搞X Window级别的开发,否则根本没法在Linux下模拟键盘消息,或者说键盘事件。像QT,GTK这些High Level的GUI library貌似根本没有提供这些功能。这么看起来,想要实现与Windows下SendMessage(hwnd, KEY_PRESS,0 ,128 )这样类似的功能还真不容易。这大概是Linux下接口不统一的弊端吧。不过还好,我们有XTest(the X test extension)这个Xlib的扩展库,用它可以实现我们想要的模拟键盘按键的功能。
比如说…
XTestFakeMotionEvent(…) // 模拟鼠标移动事件
XTestFakeButtonEvent(…) // 模拟鼠标按键事件
XTestFakeKeyEvent(…) // 模拟键盘按键事件
当然别忘了它的头文件“X11/extensions/XTest.h”
这里还有Xtest的详细接口定义: http://docsrv.sco.com:507/en/man/html.Xext/XTEST.Xext.html

用法还是比较简单的,例子我先不给出,因为我发现了更加便捷的方法:那就是python的第三方扩展库virtkey

virtkey(https://launchpad.net/virtkey): python extension for emulating keypresses and getting current keyboard layout

看看,多么完美的解决方案,Ubuntu下有个叫OnBoard的虚拟键盘程序,就是用这个包包实现的。
我发现python-virtkey依赖于libxtst6这个包,那么肯定也是用Xtest实现的咯~一翻源码,果然如此。
(源码:http://bazaar.launchpad.net/~onboard/virtkey/main/files)
使用方法真的很简单哦,主要有两系列接口:
press_keysym/release_keysym

press_unicode/release_unicode

前者接受keysym作为参数,后者接受键位的unicode.

举个例子:

import virtkey import time def simulate(): v = virtkey.virtkey() time.sleep(3)v.press_unicode(ord("a")) v.release_unicode(ord("a")) v.press_keysym(65363)v.release_keysym(65363)   simulate()

使用python运行,不出意外的话,在你的当前光标处会出现一个新字母“a”,而且光标会右移一位。

如果不用virtkey怎么办嗯?好说,请看virtkey的源码

linux模拟键盘按键方案(收藏)相关推荐

  1. python调用linux软键盘_在Linux中使用Python模拟键盘按键

    之前在做自动化测试中需要用Python在linux中模拟Ctrl+V 进行路径粘贴,试了很多种方法,起初用了xerox和pyperclip这两个python库,但打开对话框后调用粘贴API无法进行粘贴 ...

  2. python 模拟键盘 linux,在Linux中使用Python模拟键盘按键,linuxpython

    在Linux中使用Python模拟键盘按键,linuxpython 之前在做自动化测试中需要用Python在linux中模拟Ctrl+V 进行路径粘贴,试了很多种方法,起初用了xerox和pyperc ...

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

    之前在做自动化测试中需要用Python在linux中模拟Ctrl+V 进行路径粘贴,试了很多种方法,起初用了xerox和pyperclip这两个python库,但打开对话框后调用粘贴API无法进行粘贴 ...

  4. linux c实现键盘模拟,C++模拟键盘按键的实例

    这个与模拟鼠标点击的函数差不多,直接上函数 keybd_event(VK_RETURN,0,0,0); keybd_event(VK_RETURN,0,KEYEVENTF_KEYUP,0); 这是模拟 ...

  5. C/C++使用keybd_event模拟键盘按键

    1 #include <stdio.h> 2 #include <Windows.h> 3 4 /* 5 设置键盘大小写状态 6 big:为TRUE则切换大写状态,否则切换小写 ...

  6. VC+API模拟键盘按键(详解篇)

    模拟键盘按键 ━━━━━━━━━━━━━━━━━━━━━━━━ 以前就想过如何模拟键盘按键向其他程序发送控制命令,但总是无功而返,这次也不例外. 模拟按键的方法很多,如PostMessage(不能用S ...

  7. 模拟键盘按键 自动输入文字

    模拟键盘按键 自动输入文字 键盘对于每个操作电脑的人员来说是最熟悉不过的了.键盘上的按键可分为两类 按下后会在电脑的输入窗口上出现对应字符的按键,如字母键和数字键等,我们称之为字符键:按下后虽然看不到 ...

  8. 驱动中实现模拟键盘按键

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 标 题: ...

  9. 模拟键盘按键、鼠标单击功能发布(可发送快捷键、热键、鼠标左键多次单击)—— 定时执行专家

    目录 ◆ 定时执行专家 -- 模拟键盘按键 ◆ 定时执行专家 -- 模拟鼠标单击 ◆ 定时执行专家 -- 模拟键盘按键 - 设置方法 (1)点击 "定时执行专家" 工具栏 &quo ...

最新文章

  1. HDU2222(AC自动机模版题)
  2. 手把手教你搭建 ELK 实时日志分析平台
  3. 批量删除注册表特定键值的小技巧
  4. vim java 注释_centOS7 下的vim java补全
  5. BUUCTF-Reverse:[GKCTF2020]Check_1n
  6. python程序流程控制_python流程控制
  7. 计算机在职英语,计算机在职研究生英语教学存在的不足
  8. Citrix XenServer Workload Balancing 报告词汇表
  9. 对其他组所提建议的回复(第一阶段)
  10. python 消息中间件_消息队列中间件 RabbitMQ 详细介绍——安装与基本应用(Python)...
  11. 做中学之教与学工具箱
  12. OPPO 人像视频黑科技新鲜出炉,下月就换手机!
  13. 施耐德 m340 编程手册_PLC模拟量的通用转换原理以及编程方法
  14. jtag接口定义 jtag接口的主要作用是什么
  15. luogu P1338 末日的传说
  16. 数据分析行业的发展前景怎么样? 未来关于十年数据分析行业的5种预测
  17. Python中的self,类中的self?
  18. 51nod 1113 矩阵快速幂【裸题】【内含黑科技】
  19. 【区块链 | Polygon】Polygon区块链PHP开发包-使用PHP语言开发Polygon
  20. QT-C++二维码生成工具(支持中文等任何字符的使用)

热门文章

  1. 如何通过cmd命令查看本机是否安装了Git或Git的版本号
  2. 分析微信朋友圈王者荣耀battle记录
  3. css 背景图旋转 只让背景图片旋转180度的实现示例
  4. 【复变函数与积分变换】目录
  5. Python、Pycharm、Ancanda、Jupyter Notebooks及tushare安装教程
  6. shell脚本运行jar包
  7. c语言字符串 排序函数,C语言标准库函数之qsort排序函数
  8. Linux中根目录/和home的区别
  9. python单步调试工具pdb
  10. Windows实时运动控制软核(四):LOCAL高速接口测试之VB.NET