Question

Je joue autour d'essayer de créer une fenêtre transparente qui recouvrira une autre application. Je trouve les extensions win32 sont un peu un gâchis, il y a win32ui, win32gui, winxpgui, etc. un peu confus.

Quoi qu'il en soit, je suis en train de passer une poignée à une fenêtre à cette fonction win32gui.UpdateLayeredWindow

le premier argument qu'il veut est une poignée, comme un type pyhandle.

toutes les méthodes pour trouver une poignée d'une fenêtre, tout retour d'un int, et non le type pyhandle. même celles des mêmes modules. win32gui.findwindow (Aucun, « WINDOWTITLE ») trouve et renvoie la poignée de la fenêtre que je veux, mais seulement sous forme int et non comme PyHandle.

Voici la documentation de l'objet. http://docs.activestate.com/activepython/2.5/pywin32/PyHANDLE. html

Voici la documentation pour la méthode FindWindow. docs.activestate.com/activepython/2.5/pywin32/win32gui__FindWindow_meth.html

et est ici la documentation pour la méthode qui n'accepte pas int. docs.activestate.com/activepython/2.5/pywin32/win32gui__UpdateLayeredWindow_meth.html

J'ai même essayé d'utiliser WX pour créer et trouver des poignées pour fenêtres, il retourne également que int.

il y a une autre fonction qui veut une poignée, écrit par les mêmes personnes, et il accepte int comme une poignée. win32api.SetWindowLong

La question est, est-il possible de créer un objet PyHANDLE de l'int je reçois? Je ne peux pas comprendre.

Était-ce utile?

La solution

Comme les docs pour dire PyHANDLE « La plupart des fonctions qui acceptent un objet poignée accepte également un entier ». Avez-vous essayé passer UpdateLayeredWindow l'entier?

En fait, un PyHANDLE est juste une enveloppe mince autour d'un entier, avec la propriété supplémentaire que lorsque l'objet disparaît PyHANDLE win32api.CloseHandle sera appelé là-dessus.

Autres conseils

pywintypes.HANDLE

PyHANDLE = POIGNEE ()

Crée un nouvel objet POIGNÉE

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top