Я получил функцию ctypes, которая должна создать messageBOX для информирования пользователя о smthg. Я бы проделал эту функцию, но с ней она не работает, потому что функция ctypes возвращает выбранную пользователем кнопку. Поэтому я попытался использовать concurrent.futures. Я получил это:
def message(ID, title, message, icons, buttons):
""" create a message in a new thread by using ctypes and threading :
Buttons : MB_OK = 0x0 | MB_OKCXL = 0x01 | MB_YESNOCXL = 0x03 | MB_YESNO = 0x04 | MB_HELP = 0x4000
Icon : ICON_EXLAIM = 0x30 | ICON_INFO = 0x40 | ICON_STOP = 0x10 """
with concurrent.futures.ThreadPoolExecutor() as executor:
future = executor.submit(ctypes.windll.user32.MessageBoxA, (ctypes.c_char_p(message), ctypes.c_char_p(title), buttons, icons))
return [ID, future.result()]
ID, result = message(45, b"test", b"test", 0x40, 0x0)
это дает мне ошибку:
Traceback (most recent call last):
File "C:\Users\Someone\Desktop\main.py", line 34, in <module>
ID, result = message(45, "test", "test", 0x40, 0x0)
File "C:\Users\Someone\Desktop\main.py", line 28, in message
return (0, ctypes.c_char_p(message), ctypes.c_char_p(tile), icons, buttons)
TypeError: bytes or integer address expected instead of str instance
[Finished in 1.3s]