我一直在尝试创建一个透明窗口,以叠加另一个应用程序。我发现Win32扩展是有点混乱,那里有Win32UI,Win32Gui,WinxPGui等。有些混乱。

无论如何,我正在尝试将句柄传递到此函数win32Gui.updatelayeredwindow的窗口

它想要的第一个参数是句柄,作为pyhandle类型。

找到窗口的手柄的所有方法,全部返回int,而不是pyhandle类型。甚至来自同一模块的人。 win32gui.findwindow(无,“ WindowTitle”)找到并返回我想要的窗口的句柄,但仅以int形式而不是作为pyhandle。

这是对象的文档。http://docs.activestate.com/activepypython/2.5/pywin32/pyhandle.html

这是Findwindow方法的文档。 docs.activestate.com/activepython/2.5/pywin32/win32gui__findwindow_meth.html

这是不接受int的方法的文档。 docs.activestate.com/activepypython/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()

创建一个新的手柄对象

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top