Python MessageBox с иконками с использованием ctypes и windll

Итак, я ищу способ создать простой Messagebox в Python, используя только собственные библиотеки и наткнулся на несколько сообщений, но именно этот, используя ctypes для импорта win32.dll и вызовите его функцию MessageboxA.

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

довольно крутой материал, я думаю.

--- но ---

когда я, когда смотреть на документация для MessageboxA на сайте Microsoft, оказывается, эта функция MessageboxA может сделать намного больше. Я просто не знаю, как правильно передать параметры.

Я пытаюсь выяснить стандартный метод для поднятия messagebox со значком в нем, как значок systemhand или предупреждение рядом с сообщением. Документация Microsoft указывает, что нужно ввести это в параметр uType, который является последним, но я не смог добиться никакого прогресса здесь, кроме изменения кнопок messagebox.

1 ответов


просто или вместе

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)

Я получил шестнадцатеричные значения из документации, которую вы связали с