无线火力 keyboard 版

原创
2020/05/21 09:22
阅读数 133

 

原文链接: 无线火力 keyboard 版

上一篇: pyhook3 安装 和 键盘鼠标监听demo

下一篇: 无限火力 pyhook版

作用:

蚂蚱技能,一直重复按we,召唤小虫子

在按r后停止10秒,避免打断r

keyboard的性能一般,单线程没啥大问题,但是多线程和多进程时会有时读不出来r,导致大招被打断

采用pyhook,解决了该问题

 

from KeyBdInput import ReleaseKey, PressKey
import time
import random
import keyboard  # pip install keyboard
import threading

lock = threading.Lock()

isRDown = False
rDownTime = 0


def getKey():
    print('getKey')
    global isRDown, rDownTime
    while True:
        if not keyboard.wait('w'):
            print('w')
        # 按下键后返回None
        if not keyboard.wait('r'):
            print('r down')
            # 复制剪贴板图片
            # lock.acquire()
            isRDown = True
            rDownTime = time.time()
            # time.sleep(5)
            isRDown = False
            # lock.release()
            print('r', time.time() - rDownTime)


def start():
    global isRDown
    time.sleep(3)
    # directx scan codes http://www.gamespp.com/directx/directInputKeyboardScanCodes.html
    while True:
        time.sleep(.01)
        if time.time() - rDownTime < 5:
            # print('r 进行中')
            time.sleep(.01)
            continue
        # lock.acquire()
        # q w e
        chars = [
            # 0x10,
            0x11,
            0x12
        ]
        sleep_time = .1
        for c in chars:
            if time.time() - rDownTime < 5:
                # print('r 进行中')
                continue
            PressKey(c)
            t2 = sleep_time + random.random() * .01
            time.sleep(t2)
            ReleaseKey(c)
            time.sleep(t2)

        # lock.release()


def main():
    start()


if __name__ == '__main__':
    # 使用threading模块,threading.Thread()创建线程,其中target参数值为需要调用的方法,同样将其他多个线程放在一个列表中,遍历这个列表就能同时执行里面的函数了
    # threads = [
    #     threading.Thread(target=start),
    #     threading.Thread(target=getKey)
    # ]
    # for t in threads:
    #     启动线程
        # t.start()

    th = threading.Thread(target=start)
    th.start()
    # th.join()
    getKey()
    print('ok')
#  wewerwewerwerrrrrrrwewerwewewewewewewerwewewewerwewewewewerwewewewewewewrewewewewewewewewewewewr

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部