有没有办法检测何时使用python / pywin32在窗口中拖动不属于我的应用程序的窗口?我想设置它,以便当我拖动一个标题与桌面边缘附近的图案匹配的窗口时,它会在鼠标松开时捕捉到边缘。每当释放鼠标时,我都可以编写代码将所有具有该标题的窗口捕捉到桌面,但我只想移动被拖动的特定窗口。
答案 0 :(得分:2)
到目前为止,我看到的唯一可行解决方案是使用SetWindowsHookEx
。 Pywin32没有接口,所以我想我必须做这样的事情:
setCallback
这样的函数,当拖拽事件发生时,它会调用python函数。 我不知道怎么做这些,或者它是否正确,但是......
答案 1 :(得分:2)
pyHook
似乎做了一些必要的工作,因为它是钩住了键盘和鼠标事件。我可能会做的是保持我所关心的所有窗户的记录,以及他们的位置。然后,在鼠标上移动时,我将检测是否有任何窗口移动,如果是这样,并且它在鼠标放开的位置附近,在标题栏上,我会假设它被拖动并拍摄它。挂钩的代码如下。
import pyHook
def mouseUp(event):
if event.Injected: return True
print "Mouse went up"
return True
hookManager = pyHook.HookManager()
hookManager.MouseLeftUp = mouseUp
hookManager.HookMouse()
你还需要一个主循环,我已经使用gtk
了,或者你可以这样做:
import pythoncom
pythoncom.PumpMessages()