|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在使用python+vscode 的前提下 如何能够获取屏幕鼠标坐在位置的坐标
在使用 `pynput` 监听鼠标事件时,如果 `CTRL + C` 无法停止程序,我们可以使用 `pynput` 提供的停止监听方法。你可以在程序中添加一个键盘监听器,当检测到特定按键(例如 `ESC` 键)时,停止鼠标监听。
下面是一个改进后的示例代码,添加了一个键盘监听器来停止鼠标监听:
- from pynput import mouse, keyboard
- import threading
- # 定义一个全局变量来控制监听器的运行
- running = True
- def on_move(x, y):
- if running:
- print(f'鼠标移动到 ({x}, {y})')
- def on_click(x, y, button, pressed):
- if running:
- if pressed:
- print(f'鼠标点击在 ({x}, {y}) 按钮 {button}')
- def on_scroll(x, y, dx, dy):
- if running:
- print(f'鼠标滚动在 ({x}, {y})')
- def on_press(key):
- global running
- try:
- if key == keyboard.Key.esc:
- print("监听器停止")
- running = False
- return False # 停止键盘监听器
- except AttributeError:
- pass
- # 启动鼠标监听线程
- mouse_listener = mouse.Listener(on_move=on_move, on_click=on_click, on_scroll=on_scroll)
- mouse_listener.start()
- # 启动键盘监听线程
- keyboard_listener = keyboard.Listener(on_press=on_press)
- keyboard_listener.start()
- # 保持主线程运行,直到键盘监听器停止
- keyboard_listener.join()
- mouse_listener.stop() # 停止鼠标监听器
- print("程序已停止")
复制代码
在这个脚本中,键盘监听器会监听按键事件,当检测到 `ESC` 键被按下时,会将 `running` 设置为 `False` 并停止键盘监听器。鼠标监听器的回调函数在检测到 `running` 为 `False` 后会停止打印信息。最后,主线程会等待键盘监听器停止,然后停止鼠标监听器。
这样,你就可以通过按下 `ESC` 键来停止监听器,避免使用 `CTRL + C` 无效的情况。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
|
|