关于Python监听键盘并生成代码对应按下代码

   首先,不墨迹,上屎山 

import time

from pynput import keyboard

keycode = None
writeFile = False


def on_press(key):
    i = 0
    '按下按键时执行。'
    try:
        global keycode
        keycode = key.char
        # while keycode == key.char:
        #     time.sleep(1)
        #     print(i+1)

    except AttributeError:
        print('special key {0} pressed'.format(
            key))


def on_release(key):
    '松开按键时执行。'
    global keycode
    keycode = None
    global writeFile
    writeFile = True
    if key == keyboard.Key.esc:
        return False


upkey = " "
key_down_time = 0
key_up_time = 0
python_file = "hello_world.py"


with keyboard.Listener(
        on_press=on_press,
        on_release=on_release) as listener:
    with open(python_file, "w") as f:
        f.write("import time\n")
        f.write("import pyautogui\n")
        while keycode is not "esc":
            while keycode is not None:
                if keycode is not None and upkey is not keycode:
                    f.write("time.sleep(" + key_up_time.__str__() + ")\n")
                    upkey = keycode
                elif upkey == keycode:
                    key_down_time = key_down_time + 0.01575
                    time.sleep(0.005)
                    key_up_time = 0
            if upkey is not " " and writeFile:
                f.write("pyautogui.keyDown('" + upkey + "')\n")
                f.write("time.sleep(" + key_down_time.__str__() + ")\n")
                f.write("pyautogui.keyUp('" + upkey + "')\n")
                writeFile = False
                key_down_time = 0
            else:
                time.sleep(0.005)
                key_up_time = key_up_time + 0.01575

listener.join()

代码效果:

运行后,逐键输入即可(不可一次按多键);

运行完成后,会生成hello_world.py文件;

运行hello_world.py文件,可以重复录入操作。

缺点:

需手动点击停止

不能录入鼠标操作

不能录入字母以外按键

读秒有些许误差

需要pip的包:

pip install pynput

pip install pyautogui

参考:

(7条消息) python——实现鼠标与键盘监听与事件处理_python检测鼠标点击_lidashent的博客-CSDN博客

(7条消息) 用Python代码自己写Python代码,竟如此简单_python怎么写代码_小斌哥ge的博客-CSDN博客

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值