python3 ctype CreateWindowEx 简单示例
我已经用谷歌搜索了一段时间,但找不到用于创建和显示窗口的 python3 ctypes 和 Win32 API 的简单示例。请给我指出好的链接或在此处显示代码。
提前致谢!
I have googled for some time but could not find simple example of python3 ctypes and Win32 API for creating and showing window. Please point me to good link or show code here.
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用 win32gui 模块及其朋友 win32api 和 win32con 最容易做到这一点。无需将您自己的 ctypes 包装器写入 Windows API。最简单的 Petzold 风格应用程序如下所示:
This is most easy to do with the win32gui module and its friends, win32api and win32con. There's no need to write your own ctypes wrappers to the Windows API. The simplest Petzold style app comes out something like this:
发现了这个漂亮的小饰品,并花时间让它只在 vanilla python 3.4.0 的标准库上工作:
(对于那些希望在 PyWin32 上使用本机的人)
http://code.activestate.com/菜谱/208699-calling-windows-api-using-ctypes-and-win32con/
Found this nice little trinket and took the time to get it working on nothing but the standard library of vanilla python 3.4.0:
(for those who wish to use natives over PyWin32)
http://code.activestate.com/recipes/208699-calling-windows-api-using-ctypes-and-win32con/
这是一个基于 @Tcll 答案的纯
ctypes
版本,也移植到“宽”API。原始版本无法正确处理 64 位 Python(将句柄转换为 c_int)并且使用 ANSI API,因此不再推荐。它还为所有内容声明完整的 argtypes/restype 以帮助捕获编码错误。正如您所看到的,使用 pywin32 更容易。
在 Python 2.7 32 位、Python 3.6 64 位和 Python 3.8 32 位上测试。
Here's a pure
ctypes
version based on the @Tcll answer ported to "wide" APIs as well. The original version didn't handle 64-bit Python correctly (casting handles to c_int) and was using the ANSI APIs, which isn't recommended anymore. It also declares full argtypes/restype for everything to help catch coding errors.As you can see, it's much easier to use
pywin32
instead.Tested on Python 2.7 32-bit, Python 3.6 64-bit and Python 3.8 32-bit.