我找不到在窗口关闭时添加回调的方法,也找不到对新创建的窗口作出反应的可靠方法。在
我的应用程序使用subprocess.Popen
创建了几个进程。每个进程都有一个可见的窗口。进程与pyHook共享一些事件,为此使用PumpMessages
。在
我使用此方法获取每个窗口的句柄:Tim Golden: Find the window for my subprocess
这个方法首先休眠一段时间等待windows的创建,然后使用EnumWindows
并比较pid。好吧,如果给足够的时间,这种方法有时是有效的,有时会闲置很长时间。显然,等待一个新窗口被创建的通知会更好。在
关窗户也是一样。我想我可以在pyHook事件中检查带有IsWindow
的句柄,但这似乎不对。我还没有找到任何python示例,msdn examplessay WM_CLOSE
将被发送,但我无法让它监听任何消息(从未发生过任何事情,我只看到我的pyHook事件)。我甚至不确定我在这里是否正确使用了HookMessage
:
def close_window(hwnd, msg):
print "closed " + str(hwnd)
window = win32ui.CreateWindowFromHandle(hwnd)
# WM_CLOSE 0x0010
window.HookMessage(close_window,0x0010)
有没有一种方法可以添加在进程创建窗口时执行的回调?
如何在窗口关闭时执行回调?在
我在这方面找到的唯一方法是使用Python绑定来实现microsoftactiveaccessibilitylayer(pyAA),而且我已经研究了很多年了。这个项目不再是主动维护的,所以你必须自己为你的Windows版本构建它,但这是我所知道的唯一能让它工作的方法。在
相关问题 更多 >
编程相关推荐