吉祥猴378 2024-07-13 20:45 采纳率: 95.8%
浏览 1
已结题

哪位大姥,知道点击鼠标左键如何进行不同条件

if button == mouse.Button.left and pressed:
    keyboard.press('6')
    keyboard.release('6')
else:
    keyboard.press('c')
    keyboard.press('2')
    time.sleep(0.01)
    keyboard.release('2')
    keyboard.release('c')
    time.sleep(0.039)
    keyboard.press('g')
    time.sleep(0.01)

mouse_listener = mouse.Listener(on_click=on_test1_click)
mouse_listener.start()
keyboard.wait('esc')

  • 写回答

6条回答 默认 最新

  • 阿里嘎多学长 2024-07-13 20:45
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    你好!看起来你正在使用 Python 编写一个脚本,通过监听鼠标点击事件来触发不同的键盘操作。你提供的代码片段已经很好地展示了基本逻辑,但我会给出一些建议来优化它。

    首先,你的代码使用了 mousekeyboard 库,这些库需要先安装。如果你还没有安装这些库,可以使用 pip 来安装:

    pip install mouse
    pip install keyboard
    

    接下来,我会对你的代码进行一些改进:

    1. 错误处理:添加异常处理来捕获可能发生的错误。
    2. 代码清晰性:使用更具描述性的变量名和函数来提高代码的可读性。
    3. 性能优化:避免在循环中重复调用 keyboard.wait,这可能会导致不必要的延迟。

    下面是优化后的代码示例:

    import mouse
    import keyboard
    import time
    
    def on_click(button, pressed):
        if button == mouse.Button.left and pressed:
            keyboard.press('6')
            keyboard.release('6')
        else:
            perform_alternate_actions()
    
    def perform_alternate_actions():
        keyboard.press('c')
        keyboard.press('2')
        time.sleep(0.01)
        keyboard.release('2')
        time.sleep(0.039)
        keyboard.release('c')
        keyboard.press('g')
        time.sleep(0.01)
        keyboard.release('g')
    
    def main():
        try:
            mouse_listener = mouse.Listener(on_click=on_click)
            mouse_listener.start()
            keyboard.wait('esc')  # 等待按下 'esc' 键来停止监听
        except Exception as e:
            print(f"An error occurred: {e}")
    
    if __name__ == "__main__":
        main()
    

    在这个示例中,我创建了一个 perform_alternate_actions 函数来封装当鼠标左键点击条件不满足时执行的键盘操作,这样可以使 on_click 函数更加简洁。

    此外,我将主逻辑放在了 main 函数中,并使用 try-except 块来捕获和打印可能发生的错误。

    请注意,这段代码只是一个示例,你可能需要根据你的具体需求进行调整。如果你需要更详细的帮助或有其他问题,随时告诉我!

    至于参考链接,这里是一些可能有用的资源:

    希望这能帮助到你!如果你有任何疑问或需要进一步的帮助,请随时联系我。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 7月21日
  • 已采纳回答 7月13日
  • 创建了问题 7月13日

悬赏问题

  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。
  • ¥15 请问用arcgis处理一些数据和图形,通常里面有一个根据点划泰森多边形的命令,直接划的弊端是只能执行一个完整的边界,但是我们有时候会用到需要在有很多边界内利用点来执行划泰森多边形的命令
  • ¥30 在wave2foam中执行setWaveField时遇到了如下的浮点异常问题,请问该如何解决呢?
  • ¥20 看图片)删除这个自动化录屏脚本就一直报错找不到脚本文件,如何解决?(相关搜索:bat文件)
  • ¥750 关于一道数论方面的问题,求解答!(关键词-数学方法)
  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件