كائن Python Pyhandle في Win32Gui
سؤال
لقد كنت ألعب في محاولة لإنشاء نافذة شفافة تتراكب تطبيقًا آخر. أجد أن امتدادات Win32 هي بعض الفوضى ، وهناك Win32UI ، و Win32Gui ، و Winxpgui ، وما إلى ذلك.
على أي حال ، أحاول نقل مقبض إلى نافذة إلى هذه الوظيفة win32gui.updatelayeredwindow
الوسيطة الأولى التي يريدها هي مقبض ، كنوع من pyhandle.
جميع طرق العثور على مقبض للنافذة ، وكلها تُرجع int ، وليس نوع pyhandle. حتى تلك من نفس الوحدات. Win32Gui.Findwindow (لا شيء ، "WindowTitle) يجد ويعيد المقبض للنافذة التي أريدها ، ولكن فقط في شكل INT وليس كحزم.
ها هي مستندات الكائن.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 لإنشاء وإيجاد مقابض لنظام التشغيل Windows ، كما أنه يعيد فقط int.
هناك وظيفة أخرى تريد مقبضًا ، كتبه نفس الأشخاص ، ويقبل INT كمقبض. win32api.setwindowlong
السؤال هو ، هل هناك طريقة لإنشاء كائن pyhandle من int التي أتلقاها؟ لا يمكنني معرفة ذلك.
المحلول
كما تقول مستندات Pyhandle ، "معظم الوظائف التي تقبل كائن المقبض تقبل أيضًا عدد صحيح". هل حاولت تمرير updatelayeredwindow العدد الصحيح؟
في الأساس ، يعد pyhandle مجرد غلاف رفيع حول عدد صحيح ، مع خاصية إضافية أنه عندما يزول كائن pyhandle win32api.closehandle سيتم استدعاؤه.
نصائح أخرى
pywintypes.handle
pyhandle = handle ()
يخلق كائن مقبض جديد