gpt4 book ai didi

windows - wxPython - 在没有窗口焦点的情况下捕获鼠标和键盘事件

转载 作者:可可西里 更新时间:2023-11-01 11:41:14 24 4
gpt4 key购买 nike

我正在尝试使用 wxPython 编写一个时间管理工具,它在理想情况下是非侵入性的并且非常不碍事。到目前为止,该应用程序可以正常使用,并在使用期间最小化到系统托盘。

但是,我注意到一旦框架不在焦点上,就像它的“图标化”时一样,当框架/应用程序在焦点上时正常工作的鼠标和键盘陷印将不再起作用。

我知道我可以编写 C++ 程序来创建 Message Queue Hook 并在操作系统级别捕获所有鼠标和键盘事件,但我不想卷起袖子那么。毕竟试图避免弄脏我的手 是我首先在 wxPython 中编写 UI 的原因:)

最佳答案

您真的需要鼠标和键盘事件,还是只知道用户是否空闲就足够了? (你提到了一个时间管理应用程序,所以这似乎是可行的。)

此代码将在 Windows 上运行并以秒为单位返回空闲时间。

from ctypes import Structure, windll, c_uint, sizeof, byref

class LASTINPUTINFO(Structure):
_fields_ = [
('cbSize', c_uint),
('dwTime', c_uint),
]

def get_idle_duration():
lastInputInfo = LASTINPUTINFO()
lastInputInfo.cbSize = sizeof(lastInputInfo)
windll.user32.GetLastInputInfo(byref(lastInputInfo))
millis = windll.kernel32.GetTickCount() - lastInputInfo.dwTime
return millis / 1000.0

关于windows - wxPython - 在没有窗口焦点的情况下捕获鼠标和键盘事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1083178/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com