我有一个Python语言的程序,当我用win32api.py发出警报时,正在运行的程序暂停了,我如何让它在警报启动的情况下继续工作?
以下是代码示例:
time.sleep(3)
win32api.MessageBox(0,'hello','text')
time.sleep(3)
os.system("TASKKILL /F /IM program.exe")
现在说到win32api.Mes..。part it会暂停程序,直到我单击"OK",如何防止它暂停?
谢谢!
发布于 2018-07-24 04:19:07
正如MSDN文档所解释的那样,MessageBox
将显示一个模式对话框,其中包含一个系统图标、一组按钮和一条简短的特定于应用程序的消息,如状态或错误信息。消息框返回一个整数值,该值指示用户单击了哪个按钮。
A dialog box的目的是阻止你的程序,直到它被处理。这就是它的意思:它使你的程序进入一种特殊的“等待用户”模式。
此外,它显然不能返回用户单击的内容,除非它等到用户单击某些内容时才返回。
如果你真的想使用MessageBox
,你可以把剩下的工作推到另一个线程上,就像这样:
def background():
time.sleep(3)
os.system("TASKKILL /F /IM program.exe")
t = threading.Thread(target=background)
t.start()
time.sleep(3)
win32api.MessageBox(0,'hello','text')
或者,您也可以使用create a modeless dialog,但这需要将程序的其余部分与win32api事件循环集成。
https://stackoverflow.com/questions/51486456
复制相似问题