有没有一种方法来检测何时不属于我的应用程序的窗口正在使用python/pywin32在窗口中拖动?我想设置它,以便当我拖动标题与桌面边缘附近的图案相匹配的窗口时,它会在放开鼠标时捕捉到边缘。只要释放鼠标,我就可以编写代码将所有带有该标题的窗口捕捉到桌面,但我只想移动被拖动的特定窗口。python + win32:检测窗口拖动
2
A
回答
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()
2
到目前为止,我看到的唯一可能的解决方案是使用SetWindowsHookEx
。 Pywin32不会连接这个,所以我想我必须这样做:
- 写一个C扩展模块。它有一个像
setCallback
这样的函数,当拖动事件发生时,它会调用python函数。 - 将包含实际钩子的C DLL写入到窗口中。这个DLL将以某种方式不得不调用当前设置的python函数。
我不知道该怎么做这些,或者如果它是正确的,但..
相关问题
- 1. 检测窗口移动属性页(win32)
- 2. 如何检测从另一个窗口拖动的窗口?
- 3. 检测是否有任何窗口被拖动
- 4. 从窗口中拖动窗口WPF
- 5. WinForms窗口拖动事件
- 6. QML:拖动无框窗口
- 7. 禁用全窗口拖动
- 8. iPad的“拖动窗口”
- 9. 从网格拖动窗口
- 10. 拖动窗口内的NSTextField
- 11. Fancybox拖动窗口左右
- 12. 检测窗口移动设备
- 13. 用KDE检测python中的活动窗口
- 14. 如何检测进入和离开窗口的HTML5拖动事件,例如Gmail?
- 15. 当元素被拖动到窗口两侧并执行功能时检测到
- 16. 检测拖动取消JavaFX
- 17. WPF窗口拖动/移动边界
- 18. 检测窗口或与jquery
- 19. 64位窗口VMware检测
- 20. 检测控制台窗口?
- 21. 在后台检测窗口
- 22. 检测窗口关闭
- 23. C++ Win32窗口无响应
- 24. Win32和窗口样式
- 25. Win32:没有窗口出现
- 26. 验证Win32窗口句柄
- 27. Win32 API工具窗口
- 28. Win32,WndProc和父子窗口
- 29. 如何检查是否正在拖动WPF窗口
- 30. 创建一个只能在父窗口内拖动的窗口
请回来,并张贴到这个问题的任何更新。我很好奇你看到你想出什么。 – Mark 2010-09-23 15:41:57
@Mark:查看我的新答案,看起来有人为我做了部分工作=) – Claudiu 2010-09-23 19:47:32