问题标签 [pyhook]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1396 浏览

multithreading - 使用 tkinter + pyhook 时冻结。两个事件循环和多线程

我正在 python 2.7 中编写一个工具来记录用户按下键盘或鼠标按钮的次数。点击量将显示在屏幕左上角的一个小黑框内。即使另一个应用程序处于活动状态,该程序也会记录点击次数。

它工作正常,除非我将鼠标移到框上。然后鼠标冻结几秒钟,然后程序再次运行。如果我再次将鼠标移到框上,鼠标会再次冻结,但这一次程序崩溃。

我试过注释掉 pumpMessages() 然后程序就可以工作了。这个问题看起来很像这个问题pyhook+tkinter=crash,但没有给出解决方案。

其他答案表明,在 python 2.6 中同时使用 wx 和 pyhook 时,dll 文件存在错误。我不知道这是否相关。

我自己的想法是,这可能与并行运行的两个事件循环有关。我已经读过 tkinter 不是线程安全的,但是我看不到如何使该程序在单个线程中运行,因为我需要同时运行 pumpmessages() 和 mainloop()。

总结一下:为什么我的程序在鼠标悬停时冻结?

0 投票
2 回答
2310 浏览

python - 如何使用 Python 检测鼠标侧键

我一直在使用 pyhook 和message点击事件的属性,但它似乎只能检测到三个标准按钮。其他人甚至没有到达处理程序。

有没有办法检测鼠标可能有的额外按钮?

0 投票
1 回答
3300 浏览

python - Python Alt 挂钩

当我遇到问题时,我正在编写这个类型记录程序 -Alt密钥没有 Ascii 编号,因此我无法以常规方式挂钩它。这是我没有钩子尝试的源代码Alt,问题是 - 我如何钩子Alt?我知道有一个名为“Alt”的类变量和一个名为“IsAlt”的内置函数,但我不知道如何使用它们。

0 投票
0 回答
824 浏览

windows - pyhook 用户键盘

使用Windows 7,Python 2.7,我编写并编译了下面的代码(使用pyinstaller2-0),如果我通过右键单击启动它并选择以管理员身份运行,它工作正常,但是当我通过任务调度程序以系统用户身份启动它时,它不会记录任何键(等待 10 秒后,它只会创建一个空的输出文件)。我在想可能是因为我将它作为另一个帐户运行,它没有连接“正确的键盘”?

0 投票
1 回答
192 浏览

python - 在间隔使用 PyHook 时在 python 中发送电子邮件

我正在使用 pyHook 来挂钩键盘和鼠标操作。程序运行时正在创建挂钩日志。我想每 5 分钟将日志发送到一封电子邮件 - 当 PunpMessages 仍在工作并且挂钩操作仍在运行时。我知道如何在 python 中发送电子邮件,但是,我不知道如何每隔固定时间间隔发送电子邮件。

0 投票
1 回答
339 浏览

python - APScheduler 问题

我正在使用 pyHook 来挂钩我的计算机的密钥并创建这些密钥的日志。现在,我正在尝试以间隔发送此日志,但我得到的是:No handlers could be found for logger "apscheduler.scheduler"

这是我的代码,我该怎么办?

0 投票
1 回答
3163 浏览

python - Pyhook 在 6 次按下后停止捕获关键事件

我编写了一个脚本来在使用 pyHook 按下一个键时移动鼠标。问题是,在 6 次按键事件之后,脚本停止拾取按键,需要从任务管理器中结束。

我在 Windows 7 机器上使用 python 2.7。我还没有找到其他人对类似问题有答案。

该代码旨在钩住鼠标,然后单击鼠标移动光标,松开鼠标并钩住键盘。在那里,键盘挂钩仅适用于 6 个事件。如果我同时挂上鼠标和键盘,则每个钩子仅适用于 6 个事件。有谁知道问题是什么以及如何解决?

更新:我找到了一个解决方案并在下面发布了答案,但仍然希望有任何答案可以解释我首先遇到问题的原因,以及解决方案解决问题的原因。

0 投票
1 回答
1214 浏览

python - win32api & pyhook - 如何获取用户的输入语言?

我安装了pyHook并成功地将处理程序附加到键盘事件,但现在我需要确定用户是在输入英文布局还是其他布局。我在事件对象中找不到此信息。

如何在 Windows 上找到焦点窗口中的输入语言是什么?我尝试使用GetKeyboardLayout没有成功(无论我输入英语还是其他语言,它总是返回相同的值 - 在我的情况下是希伯来语)。

谢谢

感谢 BrendanMcK 的参考解决。

Python代码:

0 投票
2 回答
2525 浏览

windows - Python 在 KeyDown [ctrl]+[c] 上使用 pyHook.HookManager() 崩溃

我正在创建一个 python 脚本来记录我在系统上按下的键(键盘记录器),并用我的打字习惯的信息打电话回家。我是 python 新手,我正在使用这个应用程序来了解它。我正在使用 python-3.x 和 windows 8

完整的源代码可以在这里找到 https://github.com/funvill/QSMonitor/blob/master/monitor.py

使用这个片段,我可以记录整个系统中的所有按键。问题是当我 [ctrl]+[c] 在另一个窗口中复制某些内容时,python 代码会崩溃。

重现步骤

  1. 运行 monitor.py 脚本
  2. 在另一个窗口 (notepad.exe) 中键入几个字母 (abcd)。
  3. 突出显示记事本中的字母并按住 [ctrl] 并按 [c]

有经验的:

将弹出一条 Windows 错误消息并告诉我 python.exe 已停止运行,需要重新启动。命令窗口中没有 python 错误消息。

我的问题是:

  • 什么可能导致副本和过去崩溃?
0 投票
1 回答
354 浏览

python - 在 pyhook pumpmessages 中使用自己的代码

我想检查我正在编写密钥的文件是否超过 2Kb。如果它超过 2KB,那么我需要制作另一个文件并停止写入这个文件。我是python的初学者,请帮帮我。请指出我在哪里可以使用代码来检查文件是否超过 2kb。

希望你能帮忙