Domanda

Ho suonato in giro cercando di creare una finestra trasparente che sovrapporre un'altra applicazione. Sto scoprendo le estensioni Win32 sono un po 'di confusione, c'è win32ui, win32gui, winxpgui, ecc po' di confusione.

In ogni caso, sto cercando di passare un handle a una finestra per questa funzione win32gui.UpdateLayeredWindow

il primo argomento che vuole è una maniglia, come un tipo pyhandle.

tutti i metodi per trovare una maniglia di una finestra, tutto il ritorno un int, e non il tipo pyhandle. anche quelli degli stessi moduli. win32gui.findwindow (nessuno "WindowTitle") reperti e restituisce l'handle per la finestra che voglio, ma solo in forma int e non come un PyHandle.

Ecco la documentazione per l'oggetto. http://docs.activestate.com/activepython/2.5/pywin32/PyHANDLE. html

Ecco la documentazione per il metodo FindWindow. docs.activestate.com/activepython/2.5/pywin32/win32gui__FindWindow_meth.html

ed ecco la documentazione per il metodo che non accetterà int. docs.activestate.com/activepython/2.5/pywin32/win32gui__UpdateLayeredWindow_meth.html

Ho anche provato ad utilizzare WX per creare e trovare maniglie per finestre, ma anche restituisce solo int.

c'è un'altra funzione che vuole una maniglia, scritta dalle stesse persone, e accetta int come maniglia. win32api.SetWindowLong

La domanda è, c'è qualche modo per creare un oggetto PyHANDLE dal int che ricevo? Non riesco a capirlo.

È stato utile?

Soluzione

Come la documentazione per PyHANDLE dire: "La maggior parte delle funzioni che accettano un oggetto maniglia accettare anche un intero". Hai provato passando UpdateLayeredWindow l'intero?

In sostanza, una PyHANDLE è solo un sottile wrapper per un intero, con la proprietà in più che quando l'oggetto PyHANDLE va via win32api.CloseHandle sarà chiamato su di esso.

Altri suggerimenti

pywintypes.HANDLE

PyHANDLE = handle ()

Crea un nuovo oggetto MANICO

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top