Python消息框与图标使用ctypes和windll

MrB*_*les 11 python dll ctypes messagebox

所以,我正在寻找一种方法,只使用本机库在Python中创建一个简单的Messagebox,并且遇到了几个帖子,但就是这个,利用ctypes导入win32.dll并调用它的MessageboxA函数.

import ctypes  # An included library with Python install.
ctypes.windll.user32.MessageBoxA(0, "Your text", "Your title", 1)
Run Code Online (Sandbox Code Playgroud)

我觉得很酷的东西.

---但是---

当我在微软网站上查看MessageboxA文档时,事实证明这个MessageboxA功能可以做更多.我只是不知道如何正确传递参数.

我正在尝试找出用于在其中添加图标来提升消息框的标准方法,例如消息旁边的systemhand或警告图标.微软的文档表明应该将其输入uType参数,这是最后一个,但除了更改消息框的按钮之外,我还没有在这里取得任何进展.

Jor*_*ley 14

你只是他们在一起

import ctypes
MB_OK = 0x0
MB_OKCXL = 0x01
MB_YESNOCXL = 0x03
MB_YESNO = 0x04
MB_HELP = 0x4000
ICON_EXLAIM=0x30
ICON_INFO = 0x40
ICON_STOP = 0x10

result = ctypes.windll.user32.MessageBoxA(0, "Your text?", "Your title", MB_HELP| MB_YESNO | ICON_STOP)
Run Code Online (Sandbox Code Playgroud)

我从您链接的文档中获取了十六进制值

  • 左边的零不是一个数字的一​​部分,例如十进制97与00097相同......我可以很容易地写出0x00000030 ... L只是意味着`long`就像在数据类型中一样(任何以`开头的数字) 0x`只是十六进制数) (2认同)