我正在创建一个脚本,如果用户按下f7,它将开始记录鼠标点击,当他释放按钮,它应该停止,这发生,除非用户关闭程序。
我写了一个代码,在按下f7的时候开始记录按键,但是当释放它的时候仍然记录按键,因为按键处于连续按下的位置,它继续启动多个监听器,数据不断冗余。
在发布f7之后,listener也没有停止
这是密码
from pynput import mouse, keyboard
from pynput.keyboard import Key, Listener
import pickle
x_pos = []
y_pos = []
both_pos = []
file = open("test.txt", "wb")
file.close()
def on_press(key):
mouse_listener = mouse.Listener(on_click=on_click)
if (key==keyboard.Key.f7):
mouse_listener.start()
print("done")
def on_release(key):
if (key==keyboard.Key.f7):
mouse_listener.stop()
print("closing file")
#file.close()
def on_click(x, y, button, pressed):
if pressed:
print ("{0} {1}".format(x,y))
x_pos.append("{0}".format(x,y))
y_pos.append("{1}".format(x,y))
#print (x_pos)
#print (y_pos)
both_pos = x_pos, y_pos
with open("temp.txt", "ab") as file:
pickle.dump(both_pos, file)
print(both_pos)
mouse_listener = mouse.Listener(on_click=on_click)
#mouse_listener.start()
with keyboard.Listener(on_press = on_press, on_release = on_release) as listener:
try:
#listener.start()
listener.join()
except MyException as e:
print('Done'.format(e.args[0]))
您没有对on_release
和on_press
中相同的mouse_listener
的引用。
在on_press
中取出mouse_listener=mouse.listener(on_click=on_click)
并在on_press
和on_release
之前定义mouse_listener
mouse_listener = mouse.Listener(on_click=on_click)
def on_press():
# do on press stuff with mouse_listener
pass
def on_release():
# do on release stuff with mouse_listener
pass
这也可能值得将整个内容打包到一个类中
好的,我有一个包含PDF文件数组的解析数据库,这些文件显示在我的表视图中。当用户选择一个文件时,他会被带到所选PDF的详细视图,并给出一个“下载”选项按钮。我使用相同的数组在表视图的segue上携带信息。下面是代码的样子。 我想编程这个按钮,以启动下载到个人设备,如果任何人可以帮助我。
使用Javascript / jQuery,当有人按下某个键时,我如何获得自动重复的keydown事件或等效事件? 我真正想要的是能够检查一把钥匙是否已关闭,但从这里的其他问题来看,这是不可能的。建议的解决方法似乎是记录键降和键控事件,然后假设键关闭(如果已记录键关闭事件并且没有后续键控)。 这个解决方案在我的案例中遇到了一个问题。我正在设计一个在线实验。用户应该在整个实验中按住“T”键,永远不要
问题内容: 我有以下方法可以在Angular中捕获按键: 我听着 但是,我想检测何时同时按下两个键,例如和同时按下(不是一个一个又一个又一个的组合)。 最好的方法是什么? 编辑 我当时想的是: 因此,如果我有多个按键,那么我将创建正确的。但是,问题在于,现在顺序很重要(即,如果我按then ,则按is ;如果我按另一种方式按,则得到) 问题答案: 我认为广播使用过多。而是使用自定义指令?这是一个用
我有一个子类JPanel的PointPanel,我想在其中实现以下行为:如果鼠标悬停在实例上,按下shift键,鼠标光标变为手光标;如果松开shift键,鼠标光标将变回默认光标。 为了实现这一点,我尝试在构造函数中添加一个: 这种方法不起作用。 包含此面板的窗口应该具有焦点,因为它是应用程序的唯一可见窗口。 我错过了什么?
问题内容: 我一直在尝试找出如何 逐渐 加速按下键时的精灵,然后一旦释放键,就逐渐减速直至停止,就像 小行星上 的飞船一样。如果可能,我想在没有任何游戏引擎的情况下执行此操作。我搜索了所以这个时候,发现相关的问题,但他们并没有回答我的问题 恰好 在我看来。 到目前为止,我想到的是: 我只是不确定如何正确地编程,因为我只能想到以相同的值增加而在持有时不会逐渐加速的方法。 所以这是我的目标( 逐渐加快
Env:-Android6.0,华为智能手机 我的应用程序是一个IM客户端,它必须与服务器保持连接并从服务器接收消息。因此,只要网络连接可用,我就必须让它一直处于活动状态。 我使用前台服务使我的应用程序在后台保持活动状态。请参阅:android-keeping-a-background-service-alive-prevention-process-death此方法在android 4.1和4.