Pregunta

He estado jugando por ahí tratando de crear una ventana transparente que superponer otra aplicación. Estoy encontrando las extensiones de Win32 son un poco de un desastre, hay win32ui, win32gui, winxpgui, etc. un tanto confuso.

De todos modos, estoy tratando de pasar un identificador a una ventana para esta función win32gui.UpdateLayeredWindow

el primer argumento que quiere es un mango, como un tipo pyhandle.

todos los métodos para encontrar un mango de una ventana, todos vuelven un int, y no el tipo pyhandle. incluso los de los mismos módulos. win32gui.findwindow (ninguno "WindowTitle") encuentra y devuelve el identificador de la ventana que quiero, pero sólo en forma int y no como un PyHandle.

aquí está la documentación para el objeto. http://docs.activestate.com/activepython/2.5/pywin32/PyHANDLE. html

aquí está la documentación para el método FindWindow. docs.activestate.com/activepython/2.5/pywin32/win32gui__FindWindow_meth.html

y aquí está la documentación para el método que no aceptará int. docs.activestate.com/activepython/2.5/pywin32/win32gui__UpdateLayeredWindow_meth.html

Incluso he intentado usar WX para crear y encontrar las manijas para las ventanas, también sólo devuelve int.

hay otra función que quiere un mango, escrito por las mismas personas, y acepta int como un mango. win32api.SetWindowLong

La pregunta es, ¿hay alguna manera de crear un objeto de la PyHANDLE int que recibo? No puedo entenderlo.

¿Fue útil?

Solución

A medida que la documentación para PyHANDLE por ejemplo, "La mayoría de las funciones que aceptan un objeto mango también acepta un entero". ¿Usted ha intentado pasar UpdateLayeredWindow el entero?

Básicamente, un PyHANDLE es sólo un envoltorio fino alrededor de un entero, con la propiedad adicional de que cuando el objeto desaparece PyHANDLE win32api.CloseHandle se llamará en él.

Otros consejos

pywintypes.HANDLE

PyHANDLE = HANDLE ()

Crea un nuevo objeto HANDLE

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top