我在1年多前写过这段代码,所以它并不完美,但它有效:

from win32api import keybd_event

import time

import random

Combs = {

'A': [

'SHIFT',

'a'],

'B': [

'SHIFT',

'b'],

'C': [

'SHIFT',

'c'],

'D': [

'SHIFT',

'd'],

'E': [

'SHIFT',

'e'],

'F': [

'SHIFT',

'f'],

'G': [

'SHIFT',

'g'],

'H': [

'SHIFT',

'h'],

'I': [

'SHIFT',

'i'],

'J': [

'SHIFT',

'j'],

'K': [

'SHIFT',

'k'],

'L': [

'SHIFT',

'l'],

'M': [

'SHIFT',

'm'],

'N': [

'SHIFT',

'n'],

'O': [

'SHIFT',

'o'],

'P': [

'SHIFT',

'p'],

'R': [

'SHIFT',

'r'],

'S': [

'SHIFT',

's'],

'T': [

'SHIFT',

't'],

'U': [

'SHIFT',

'u'],

'W': [

'SHIFT',

'w'],

'X': [

'SHIFT',

'x'],

'Y': [

'SHIFT',

'y'],

'Z': [

'SHIFT',

'z'],

'V': [

'SHIFT',

'v'],

'Q': [

'SHIFT',

'q'],

'?': [

'SHIFT',

'/'],

'>': [

'SHIFT',

'.'],

'

'SHIFT',

','],

'"': [

'SHIFT',

"'"],

':': [

'SHIFT',

';'],

'|': [

'SHIFT',

'\\'],

'}': [

'SHIFT',

']'],

'{': [

'SHIFT',

'['],

'+': [

'SHIFT',

'='],

'_': [

'SHIFT',

'-'],

'!': [

'SHIFT',

'1'],

'@': [

'SHIFT',

'2'],

'#': [

'SHIFT',

'3'],

'$': [

'SHIFT',

'4'],

'%': [

'SHIFT',

'5'],

'^': [

'SHIFT',

'6'],

'&': [

'SHIFT',

'7'],

'*': [

'SHIFT',

'8'],

'(': [

'SHIFT',

'9'],

')': [

'SHIFT',

'0'] }

Base = {

'0': 48,

'1': 49,

'2': 50,

'3': 51,

'4': 52,

'5': 53,

'6': 54,

'7': 55,

'8': 56,

'9': 57,

'a': 65,

'b': 66,

'c': 67,

'd': 68,

'e': 69,

'f': 70,

'g': 71,

'h': 72,

'i': 73,

'j': 74,

'k': 75,

'l': 76,

'm': 77,

'n': 78,

'o': 79,

'p': 80,

'q': 81,

'r': 82,

's': 83,

't': 84,

'u': 85,

'v': 86,

'w': 87,

'x': 88,

'y': 89,

'z': 90,

'.': 190,

'-': 189,

',': 188,

'=': 187,

'/': 191,

';': 186,

'[': 219,

']': 221,

'\\': 220,

"'": 222,

'ALT': 18,

'TAB': 9,

'CAPSLOCK': 20,

'ENTER': 13,

'BS': 8,

'CTRL': 17,

'ESC': 27,

' ': 32,

'END': 35,

'DOWN': 40,

'LEFT': 37,

'UP': 38,

'RIGHT': 39,

'SELECT': 41,

'PRINTSCR': 44,

'INS': 45,

'DEL': 46,

'LWIN': 91,

'RWIN': 92,

'LSHIFT': 160,

'SHIFT': 161,

'LCTRL': 162,

'RCTRL': 163,

'VOLUP': 175,

'DOLDOWN': 174,

'NUMLOCK': 144,

'SCROLL': 145 }

def KeyUp(Key):

keybd_event(Key, 0, 2, 0)

def KeyDown(Key):

keybd_event(Key, 0, 1, 0)

def Press(Key, speed=1):

rest_time = 0.05/speed

if Key in Base:

Key = Base[Key]

KeyDown(Key)

time.sleep(rest_time)

KeyUp(Key)

return True

if Key in Combs:

KeyDown(Base[Combs[Key][0]])

time.sleep(rest_time)

KeyDown(Base[Combs[Key][1]])

time.sleep(rest_time)

KeyUp(Base[Combs[Key][1]])

time.sleep(rest_time)

KeyUp(Base[Combs[Key][0]])

return True

return False

def Write(Str, speed = 1):

for s in Str:

Press(s, speed)

time.sleep((0.1 + random.random()/10.0) / float(speed))

例:

>>> Write('Hello, World!', speed=3)

Hello, World!

>>> Press('ENTER')

如果您想要实现更多密钥,那么您可以找到它们的代码here.只需将这些密钥添加到Base字典即可.

python按键事件的按键号,在Python 2.7中模拟按键事件相关推荐

  1. Qt文档阅读笔记-Qt单元测试中模拟GUI事件

    这里先提下基本概念 官方的模拟GUI事件,就是调用QTest提供的函数,去模拟用户鼠标点击,用户输入等效果.从而达到模拟的功能,感觉这个功能非常的好. 如: QTest::keyClicks()主要是 ...

  2. Python IDLE无法显示行号、Python IDLE shell里运行py文件

    一.Python自带的IDLE shell里无法在左侧显示行号,在右下角会显示当前光标所处的位置(行号.列号). 但是程序报错时,无法根据行号及时查看到相应的行. 使用快捷键Alt+G可以定位到指定的 ...

  3. python爬虫爬取公众号_[Python]爬取微信公众号文章

    [Python] 纯文本查看 复制代码import sys reload(sys) sys.setdefaultencoding('utf-8') from urllib import quote f ...

  4. python触发点击事件_如何在python中模拟onclick事件?

    I am working on a small project where I have to submit a form to a website. The website is, however, ...

  5. adb模拟按键home_adb命令中 模拟按键 KeyCode 部分详解

    1. 最常用的几个按键 // 返回键 ,back adb shell input keyevent 4 // 锁屏键 /关机键 adb shell input keyevent 82 //划屏操作,从 ...

  6. onscroll事件没有响应的原因以及vue.js中添加onscroll事件监听的方法(vue上监听scroll事件

    在vue.js中直接使用onscroll不起作用 利用DOM二级监听事件即可, window.addEventListener('scroll',()=>{console.log(window. ...

  7. android+无触摸操作,如何在Android中模拟触摸事件?

    这是一个monkeyrunner脚本,用于将触摸和拖动操作发送到应用程序.我一直在使用它来测试我的应用程序可以处理快速重复的滑动手势. # This is a monkeyrunner jython ...

  8. html模拟点击某个键盘按钮,如何使用JavaScript模拟按键或单击?

    模拟鼠标单击 我的猜测是网页正在监听mousedown而不是点击(这对于可访问性是不利的,因为当用户使用键盘时,只会触发焦点和点击,而不是mousedown).所以你应该模拟mousedown,cli ...

  9. python制作游戏修改器_基于Python的游戏是如何制作的?

    让我们先把这个让开:the game should run even on a computer where there's no python installation. So my questio ...

最新文章

  1. java 静态内部类 线程安全问题_单例模式的七种写法, 面试题:线程安全的单例模式...
  2. 5种方法实现“反转字符串”
  3. C语言二级指针内存模型建立
  4. SAP Spartacus cms-components.service.ts里的config.cmsComponents
  5. apache ignite_Kubernetes集群上的Apache Ignite和Spring第1部分:Spring Boot应用程序
  6. 输出10000以内的第M到第N个素数(Eclipse gcc下)
  7. free() 是如何释放不同内存区块大小的指针?
  8. Lucene全文检索_分词_复杂搜索_中文分词器
  9. 2021-2025年中国催产药行业市场供需与战略研究报告
  10. 解决web网站被挂马清除方法
  11. 欧拉函数知识点总结及欧拉函数打表代码(数论)
  12. 帮助干活,朋友馈赠了购物卡
  13. 管理感悟:维护每日工作列表
  14. 七牛上传文件(JS实现)
  15. Vue FSC在线编译代码实时预览@vue/repl
  16. 自制一个交叉适配器来检修网络设备(转)
  17. leetcode 最长单词
  18. MISC解题思路总结(一)XCTF平台
  19. Day22-Django之信号
  20. rem命令使用 matlab,matlab中的rem怎么用?

热门文章

  1. (转载)摄影集.西湖边的一棵树
  2. 标注界址点号lisp_LISP语言在宗地界址点成果表的应用
  3. 整数-28d在计算机中用8位二进制表示,文本框的种类有
  4. SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS 论文/GCN学习笔记
  5. CodeForces 962C - Make a Square
  6. Eclipse中文字体很小如何更改
  7. 高压设备用Inconel 625镍基高温合金
  8. 堡垒之夜显示连接服务器失败,堡垒之夜国服进不去怎么办 连接启动器登录失败解决方法...
  9. linux下如何运行c编译,Linux下如何编译并运行C程序
  10. 励志用 | ACM-ICPC/CCPC 个人经历总结_楚东方(转)