Python PyHANDLE Objekt in win32gui
Frage
Ich habe versucht, zu spielen um ein transparentes Fenster zu erstellen, die eine andere Anwendung überlagern. Ich finde die win32-Erweiterungen ein bisschen ein Durcheinander sind, gibt es win32ui, win32gui, winxpgui usw. etwas verwirrend.
Wie auch immer, ich versuche, ein Handle zu einem Fenster auf diese Funktion zu übergeben win32gui.UpdateLayeredWindow
das erste Argument es will, ist ein Griff, als pyhandle Art.
alle Methoden einen Griff eines Fensters zu finden, die alle Rückkehr ein int und nicht die pyhandle Typ. auch die, die aus den gleichen Modulen. win32gui.findwindow (None „Fenstertitel“) Funde und gibt das Handle für das Fenster ich will, aber nur in int Form und nicht als PyHandle.
Hier ist die Dokumentation für das Objekt. http://docs.activestate.com/activepython/2.5/pywin32/PyHANDLE. html
Hier ist die Dokumentation für die Findwindow-Methode. docs.activestate.com/activepython/2.5/pywin32/win32gui__FindWindow_meth.html
und hier ist die Dokumentation für die Methode, die int nicht akzeptieren. docs.activestate.com/activepython/2.5/pywin32/win32gui__UpdateLayeredWindow_meth.html
Ich habe sogar versucht, WX mit Griffen für Fenster erstellen und zu finden, ist es auch nur int.
gibt es eine andere Funktion, die einen Griff will, von den gleichen Leuten geschrieben, und es akzeptiert int als Griff. win32api.SetWindowLong
Die Frage ist, ist es eine Möglichkeit, ein PyHANDLE Objekt aus dem int zu erstellen i erhalten? Ich kann es nicht herausgefunden.
Lösung
Wie die Dokumentation für PyHANDLE sagen: „Die meisten Funktionen, die ein Handle-Objekt auch eine ganze Zahl annehmen“. Haben Sie versucht, vorbei UpdateLayeredWindow die ganze Zahl?
Im Grunde ein PyHANDLE ist nur eine dünne Hülle um eine ganze Zahl, mit der zusätzlichen Eigenschaft, dass, wenn das Objekt PyHANDLE weggeht win32api.CloseHandle wird auf sie aufgerufen werden.
Andere Tipps
pywintypes.HANDLE
PyHANDLE = GRIFF ()
Erstellt ein neues Handle Objekt