win32guiのpython pyhandleオブジェクト
質問
私は別のアプリケーションをオーバーレイする透明なウィンドウを作成しようとして遊んでいます。 Win32拡張機能は少し混乱していることがわかりました。Win32UI、Win32Gui、Winxpguiなどがあります。多少混乱しています。
とにかく、私はこの関数のためにハンドルをウィンドウに渡そうとしていますwin32gui.updateLayeredwindow
それが望む最初の議論は、ハンドルタイプとしてのハンドルです。
ウィンドウのハンドルを見つけるためのすべての方法は、すべてがpyhandleタイプではなくintを返します。同じモジュールのものでさえ。 win32gui.findwindow(none、 "windowtitle")は、必要なウィンドウのハンドルを見つけて返しますが、pyhandleとしてではなく、int形式でのみです。
これがオブジェクトのドキュメントです。http://docs.activestate.com/activepython/2.5/pywin32/pyhandle.html
FindWindowメソッドのドキュメントは次のとおりです。 docs.activestate.com/activepython/2.5/pywin32/win32gui__findwindow_meth.html
また、INTを受け入れない方法のドキュメントは次のとおりです。 docs.activestate.com/activepython/2.5/pywin32/win32gui__updateLayeredwindow_meth.html
WXを使用してWindows用のハンドルを作成して見つけようと試みましたが、INTのみを返します。
同じ人によって書かれたハンドルを必要とする別の関数があり、INTをハンドルとして受け入れます。 win32api.setwindowlong
質問は、私が受信したINTからpyhandleオブジェクトを作成する方法はありますか?私はそれを理解することができません。
解決
Pyhandleのドキュメントが言うように、「ハンドルオブジェクトを受け入れるほとんどの関数も整数を受け入れます」。整数をupdateLayeredWindowを渡してみましたか?
基本的に、pyhandleは整数の周りの薄いラッパーであり、pyhandleオブジェクトが去るとwin32api.closehandleが去るという特性があります。
他のヒント
pywintypes.handle
pyhandle = handle()
新しいハンドルオブジェクトを作成します