Python PyHANDLE объект в win32gui - PullRequest
       11

Python PyHANDLE объект в win32gui

3 голосов
/ 22 августа 2010

Я пытался создать прозрачное окно, которое будет перекрывать другое приложение.Я нахожу, что расширения win32 немного беспорядочные, некоторые win32ui, win32gui, winxpgui и т. Д. Несколько сбивают с толку.

В любом случае, я пытаюсь передать дескриптор окна этой функции win32gui.UpdateLayeredWindow

первый требуемый аргумент - это дескриптор как тип pyhandle.

все методы для поиска дескриптора окна, все возвращают int, а не тип pyhandle.даже те из тех же модулей.win32gui.findwindow (None, "windowtitle") находит и возвращает дескриптор для нужного мне окна, но только в виде int, а не как PyHandle.

Вот документы для объекта.http://docs.activestate.com/activepython/2.5/pywin32/PyHANDLE.html

вот документы для метода findwindow.docs.activestate.com/activepython/2.5/pywin32/win32gui__FindWindow_meth.html

и вот документы для метода, который не будет принимать int.docs.activestate.com/activepython/2.5/pywin32/win32gui__UpdateLayeredWindow_meth.html

Я даже пытался использовать WX для создания и поиска дескрипторов для окон, он также возвращает только int.

есть ещефункция, которая хочет дескриптор, написанный теми же людьми, и она принимает int как дескриптор.win32api.SetWindowLong

Вопрос в том, существует ли какой-либо способ создания объекта PyHANDLE из получаемого мной int?Я не могу понять это.

Ответы [ 2 ]

2 голосов
/ 09 апреля 2013

pywintypes.HANDLE

PyHANDLE = HANDLE ()

Создает новый объект HANDLE

2 голосов
/ 22 августа 2010

Как сказано в документации по PyHANDLE, «большинство функций, которые принимают объект дескриптора, также принимают целое число». Вы пытались передать UpdateLayeredWindow целое число?

По сути, PyHANDLE - это просто тонкая обертка вокруг целого числа с дополнительным свойством, которое, когда объект PyHANDLE исчезает, вызывается win32api.CloseHandle.

...