如何检测鼠标点击和按键?
How to detect mouse click and keypress?
我想使用 Python 脚本查找在开始时间和结束时间(开始时间:9:30 和 endtime:10:30)之间是否发生鼠标点击和按键操作。
Python代码在这里:
from pynput.mouse import Listener
from pynput.keyboard import Key, Listener
def on_click(x, y, button, pressed):
if pressed:
print("Mouse clicked.")
def on_press(key):
print("key is pressed")
with Listener(on_click=on_click,on_press=on_press) as listener:
listener.join()
有了这个我可以点击鼠标和按键,但我不知道时间间隔。
我不太了解它,但我认为您可以使用模块 time
中的函数 time
。您可以将 start = time.time()
绑定到开始按钮,将 end = time.time()
绑定到结束按钮。然后,对于每个间隔使用 i = end - start
.
首先,您的代码对我不起作用。
为了测试它,我不得不做一些改变。
我的问题是鼠标和键盘同时发生。
这里我post我修改的代码:
from pynput.keyboard import Key, Listener
from pynput.mouse import Listener
def on_click(x, y, button, pressed):
if pressed:
print("Mouse clicked.")
def on_press(key):
print("key is pressed")
from pynput import keyboard
key_listener = keyboard.Listener(on_press=on_press)
key_listener.start()
with Listener(on_click=on_click) as listener:
listener.join()
(来源:Using Mouse and Keyboard Listeners Together in Python)
如果你想计算秒、分钟等,你可以像@Ujjwal Dash 说的那样使用time。
如果鼠标事件在脚本启动后的 1 到 10 秒之间,则会被注意到。
import time
from pynput.keyboard import Key, Listener
from pynput.mouse import Listener
def on_click(x, y, button, pressed):
delta_time = (int(time.time()-start_time))
if delta_time >=1 and delta_time <=10:
if pressed:
print("Mouse clicked.")
def on_press(key):
delta_time = (int(time.time()-start_time))
print(delta_time)
print("key is pressed")
start_time = time.time()
from pynput import keyboard
key_listener = keyboard.Listener(on_press=on_press)
key_listener.start()
with Listener(on_click=on_click) as listener:
listener.join()
delta_time ...脚本启动后的秒数
如果你想让它听一天中的特定时间,你可以使用unix时间并用时间模块转换它。
在此代码中,如果鼠标位于 7:00 和 10:00 当地时间之间,则会被注意到。
import time
from pynput.keyboard import Key, Listener
from pynput.mouse import Listener
def check_time():
t = time.localtime(time.time())
if t.tm_hour<= 10 and t.tm_hour>=7:
return True
else:
return False
def on_click(x, y, button, pressed):
if check_time():
if pressed:
print("Mouse clicked.")
else:
pass
def on_press(key):
print("key is pressed")
from pynput import keyboard
key_listener = keyboard.Listener(on_press=on_press)
key_listener.start()
with Listener(on_click=on_click) as listener:
listener.join()
我想使用 Python 脚本查找在开始时间和结束时间(开始时间:9:30 和 endtime:10:30)之间是否发生鼠标点击和按键操作。
Python代码在这里:
from pynput.mouse import Listener
from pynput.keyboard import Key, Listener
def on_click(x, y, button, pressed):
if pressed:
print("Mouse clicked.")
def on_press(key):
print("key is pressed")
with Listener(on_click=on_click,on_press=on_press) as listener:
listener.join()
有了这个我可以点击鼠标和按键,但我不知道时间间隔。
我不太了解它,但我认为您可以使用模块 time
中的函数 time
。您可以将 start = time.time()
绑定到开始按钮,将 end = time.time()
绑定到结束按钮。然后,对于每个间隔使用 i = end - start
.
首先,您的代码对我不起作用。 为了测试它,我不得不做一些改变。 我的问题是鼠标和键盘同时发生。
这里我post我修改的代码:
from pynput.keyboard import Key, Listener
from pynput.mouse import Listener
def on_click(x, y, button, pressed):
if pressed:
print("Mouse clicked.")
def on_press(key):
print("key is pressed")
from pynput import keyboard
key_listener = keyboard.Listener(on_press=on_press)
key_listener.start()
with Listener(on_click=on_click) as listener:
listener.join()
(来源:Using Mouse and Keyboard Listeners Together in Python)
如果你想计算秒、分钟等,你可以像@Ujjwal Dash 说的那样使用time。
如果鼠标事件在脚本启动后的 1 到 10 秒之间,则会被注意到。
import time
from pynput.keyboard import Key, Listener
from pynput.mouse import Listener
def on_click(x, y, button, pressed):
delta_time = (int(time.time()-start_time))
if delta_time >=1 and delta_time <=10:
if pressed:
print("Mouse clicked.")
def on_press(key):
delta_time = (int(time.time()-start_time))
print(delta_time)
print("key is pressed")
start_time = time.time()
from pynput import keyboard
key_listener = keyboard.Listener(on_press=on_press)
key_listener.start()
with Listener(on_click=on_click) as listener:
listener.join()
delta_time ...脚本启动后的秒数
如果你想让它听一天中的特定时间,你可以使用unix时间并用时间模块转换它。 在此代码中,如果鼠标位于 7:00 和 10:00 当地时间之间,则会被注意到。
import time
from pynput.keyboard import Key, Listener
from pynput.mouse import Listener
def check_time():
t = time.localtime(time.time())
if t.tm_hour<= 10 and t.tm_hour>=7:
return True
else:
return False
def on_click(x, y, button, pressed):
if check_time():
if pressed:
print("Mouse clicked.")
else:
pass
def on_press(key):
print("key is pressed")
from pynput import keyboard
key_listener = keyboard.Listener(on_press=on_press)
key_listener.start()
with Listener(on_click=on_click) as listener:
listener.join()