私のアプリケーションに属していないウィンドウがpython/pywin32を使用してウィンドウにドラッグされていることを検出する方法はありますか?デスクトップの端の近くのパターンとタイトルが一致するウィンドウをドラッグすると、マウスを離したときに端にスナップするように設定したいと思います。マウスを離すたびに、そのタイトルのすべてのウィンドウをデスクトップにスナップするコードを記述できますが、ドラッグされていた特定のウィンドウのみを移動したいと思います。
1481 次
2 に答える
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()
于 2010-09-23T19:47:11.653 に答える
2
これまでのところ、私が目にする唯一の可能な解決策は、を使用することSetWindowsHookEx
です。Pywin32 はこれに対応していないため、次のようにする必要があると思います。
- C 拡張モジュールを作成します。
setCallback
ドラッグイベントが発生したときにPython関数を呼び出すような関数があります。 - 実際のフックを含む C DLL をウィンドウに書き込みます。この DLL は、現在設定されている python 関数を何らかの方法で呼び出す必要があります。
これらを行う方法、またはそれが正しいかどうかはわかりませんが..
于 2010-09-21T16:19:51.923 に答える