栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Python 2.7中模拟按键事件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Python 2.7中模拟按键事件

我在一年多以前编写了这段代码,虽然它并不完美,但是可以正常工作:

from win32api import keybd_eventimport timeimport randomCombs = {    '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 Falsedef 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')

如果要实现更多的键,则可以在此处找到它们的代码。只需将这些键添加到基本字典中即可。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/668318.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号