Inno setup 如何在指定的时间内显示消息框?

Inno setup 如何在指定的时间内显示消息框?,inno-setup,messagebox,Inno Setup,Messagebox,有没有办法在指定的时间内显示消息框(也就是说,当指定的时间过去时,消息框会自动关闭)?Windows API有一个函数可以在指定的时间内显示消息框,但由于某些原因,该函数未被记录,这意味着它没有得到官方支持,很可能会发生变化 该函数名为MessageBoxTimeout,它甚至在user32.dll库中有导出功能,这让我觉得该函数唯一缺少的是官方文档。但是谁知道呢 以下脚本显示如何在显示向导窗体之前显示消息框5秒钟。如果用户未单击“确定”按钮,也未手动关闭窗口,则消息框在5秒后自动关闭: [代码

有没有办法在指定的时间内显示消息框(也就是说,当指定的时间过去时,消息框会自动关闭)?

Windows API有一个函数可以在指定的时间内显示消息框,但由于某些原因,该函数未被记录,这意味着它没有得到官方支持,很可能会发生变化

该函数名为
MessageBoxTimeout
,它甚至在
user32.dll
库中有导出功能,这让我觉得该函数唯一缺少的是官方文档。但是谁知道呢

以下脚本显示如何在显示向导窗体之前显示消息框5秒钟。如果用户未单击“确定”按钮,也未手动关闭窗口,则消息框在5秒后自动关闭:

[代码]
#ifdef UNICODE
#定义AW“W”
#否则
#定义“A”
#恩迪夫
常数
MB_TIMEDOUT=32000;
MB_iError=$10;
MB_i质询=20美元;
MB_ICONWARNING=30美元;
MB_Iconninformation=40美元;
函数MessageBoxTimeout(hWnd:hWnd;lpText:string;lpCaption:string;
uType:UINT;wLanguageId:Word;DWM:DWORD):整数;
外部“MessageBoxTimeout{#AW}@user32.dll stdcall”;
程序初始化;
开始
MessageBoxTimeout(WizardForm.Handle,'此消息将自动'+
“5秒后关闭!”、“标题…”、MB_OK或MB_图标信息,0,5000);
结束;
有关参数和结果值的更多信息,请参阅函数帮助网站和一些描述
MessageBoxTimeout
函数本身的非官方文章,例如:


如果您想要比允许的
MessageBoxTimeout
更定制的实现(如倒计时显示或自定义按钮标题):

  • 使用创建自定义表单
  • 用于实现超时/倒计时
有关完整的代码,请参阅