我一直在尝试创建一个覆盖另一个应用程序的透明窗口。我发现 win32 扩展有点乱,有 win32ui、win32gui、winxpgui 等,有点令人困惑。
无论如何,我正在尝试将一个窗口句柄传递给这个函数 win32gui.UpdateLayeredWindow
它想要的第一个参数是句柄,作为 pyhandle 类型。
所有查找窗口句柄的方法都返回一个 int,而不是 pyhandle 类型。即使是来自相同模块的那些。win32gui.findwindow(None, "windowtitle") 查找并返回我想要的窗口的句柄,但仅以 int 形式而不是 PyHandle。
这是该对象的文档。 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 来创建和查找窗口句柄,它也只返回 int。
还有另一个需要句柄的函数,由同一个人编写,它接受 int 作为句柄。win32api.SetWindowLong
问题是,有没有办法从我收到的 int 创建一个 PyHANDLE 对象?我想不通。