MsgBox

首页  后退  前进

MsgBox
down2

MsgBox

显示可选超时的简单消息框.

 

MsgBox ( flag, "title", "text" [, timeout = 0 [, hwnd]] )

参数

flag

指定消息框的类型及可能的按钮组合. 见备注.

title

消息框的标题.

text

消息框的提示信息.

timeout

[可选] 超时时间(秒). 超时时间过后消息框将自动关闭. default(默认) = 0, 没有超时限制.

hwnd

[可选] 显示对话框的父窗句柄.

返回值

成功:

返回消息框被按下按钮的 ID.

失败:

返回 $IDTIMEOUT (-1), 消息框已超时.

 

 

 

点击的按钮

返回值

确定

$IDOK (1)

取消

$IDCANCEL (2)

中止

$IDABORT (3)

重试

$IDRETRY (4)

忽略

$IDIGNORE (5)

$IDYES (6)

$IDNO (7)

再重试 **

$IDTRYAGAIN (10)

继续 **

$IDCONTINUE (11)

 

常量定义在 MsgBoxConstants.au3.

备注

标志参数可以是下列数值的组合:

 

常量名

十进制标志

相关按钮的结果

十六进制标志

$MB_OK

0

"确定"按钮

0x0

$MB_OKCANCEL

1

"确定" 与 "取消"

0x1

$MB_ABORTRETRYIGNORE

2

"终止" + "重试" + "忽略"

0x2

$MB_YESNOCANCEL

3

"是" + "否" + "取消"

0x3

$MB_YESNO

4

"是" + "否"

0x4

$MB_RETRYCANCEL

5

"重试" + "取消"

0x5

$MB_CANCELTRYCONTINUE

6

"取消" + "重试 + "继续"

0x6

$MB_HELP

16384

添加一个"帮助"按钮. 当用户点击"帮助"按钮或按 F1 键时, 系统向所有者发送 WM_HELP 消息.

0x4000

常量名

十进制标志

相关图标

十六进制标志值


0

(无图标)

0x0

$MB_ICONERROR

16

终止图标

0x10

$MB_ICONQUESTION

32

问号图标

0x20

$MB_ICONWARNING

48

感叹号图标

0x30

$MB_ICONINFORMATION

64

由一个 "i" 和圆圈组成的信息图标

0x40

常量名

十进制标志

默认按钮

十六进制标志值

$MB_DEFBUTTON1

0

第一按钮为默认按钮

0x0

$MB_DEFBUTTON2

256

第二按钮为默认按钮

0x100

$MB_DEFBUTTON3

512

第三按钮为默认按钮

0x200

$MB_DEFBUTTON4

768

第四按钮为默认按钮

0x300

常量名

十进制标志

相关模式

十六进制标志值

$MB_APPLMODAL

0

应用程序模式


$MB_SYSTEMMODAL

4096

系统模式(对话框带有图标)

0x1000

$MB_TASKMODAL

8192

任务模式

0x2000

常量名

十进制标志

其它相关

十六进制标志值


0

(无特别)

0x0

$MB_DEFAULT_DESKTOP_ONLY

131072

MsgBox() 在桌面上显示交互式窗口站消息框

0x20000

$MB_RIGHT

524288

标题及文本右对齐

0x80000

$MB_RTLREADING

1048576

希伯来语和阿拉伯语系统使用从右到左的阅读顺序显示消息和标题文本.

0x100000

$MB_SETFOREGROUND

65536

消息框成为前台窗口.

0x10000

$MB_TOPMOST

262144

MsgBox() 有置顶属性

0x40000

$MB_SERVICE_NOTIFICATION

2097152

即使没有用户登录到计算机, 函数仍然在当前活动桌面上显示一个消息框.

0x200000

 

例如, 如果要指定一个具有"系统模式"属性, 并带有是/否按钮的消息框, 则标志参数应该是 4096+4 (或 4100); 如果使用十六进制的标志,则是 0x1000+0x4 (或 0x1004).

 

消息框将出现在屏幕中央, 并自动根据所含文本调整窗口大小. 如果标志参数中使用了"系统模式"(4096), 则标题栏的文字将会被切去部分.

 

如果"标题"参数使用关键字 Default 标题将由 @Scriptname 返回脚本名称

 

特别注意; 由服务调用的消息框在使用 $MB_SERVICE_NOTIFICATION 标志时不支持使用超时参数. 当指定 $MB_SERVICE_NOTIFICATION 时, 消息框窗口不属于调用本函数的进程.

 

常量定义在 MsgBoxConstants.au3

 

函数示例

示例 1

#include <MsgBoxConstants.au3>
MsgBox($MB_SYSTEMMODAL, "Title", "This message box will timeout after 10 seconds or select the OK button.", 10)

示例 2

#include <MsgBoxConstants.au3>
Local $iTimeout = 10
; Display a message box with a nested variable in its text.
MsgBox($MB_SYSTEMMODAL, "Title", "This message box will timeout after " & $iTimeout & " seconds or select the OK button.", $iTimeout)

----------------------------------------

参见:

InputBox, ToolTip, SplashTextOn

例子
copy

MsgBox(4096,'Заголовок','Это~~диалоговое~~окно~~закроется~~через~~10~~секунд',10)

 

exect=$var_ibutton=MsgBox(4096,'Сообщение','Сделайте~~выбор.') GLOBALEXECT<a> ;; 示例消息框

 

exect=$var_vbutton=InputBox('Вопрос','其中~~вы~~род或сь?')||$var_input=MsgBox(4096,'Сообщение','$var_button') GLOBALEXECT<a> ;; 消息窗口中输出信息的输入窗口示例

 

exect=$var_i=2+5||$var_k=8 exect=$var_i=$var_k*$var_n+55 exect=MsgBox(4096,'Результат','$var_i') ;; 使用变量和数学动作的例子

 

exect=$var_s1='Hello'||$var_s2='пока' exect=$var_s1='$var_s2'&'~~'&'$var_s1' exect=MsgBox(4096,'Результат','$var_s1') ;;  - 使用变量和字符串mi的例子

 

exect=$var_ss=StringStripCR('Это~~'&@CR&'字符串')||MsgBox(4096,'Результат','$var_ss') ;; 删除回车符的示例

 

exect=$var_aa=StringSplit('AAA|BBB|CCC|DDD','|',2)||_ArrayDisplay($var_aa)||$var_s1=_ArrayPop($var_aa)||MsgBox(4096,'Результат','$var_s1')||_ArrayDisplay($var_aa) ;; 返回最后一个元素数组a $var_aa的示例,同时从数组a中删除它

 

exect=$var_aa=StringSplit('AAA|BBB|CCC|DDD|EEE|FFF','|',2)||_ArrayDisplay($var_aa)||$var_ii=_ArraySearch($var_aa,'DDD')||MsgBox(4096,'Результат','$var_ii') ;; 找到短语"DDD"所在的小区索引的示例

 

exect=$var_aa=StringSplit('AAA|BBB|CCC|DDD|EEE|FFF','|',2)||_ArrayDisplay($var_aa)||$var_ss=_ArrayToString($var_aa,@TAB,1,5)||MsgBox(4096+64,'Результат','$var_ss') ;; 例如,将数组的数组A组合在一行,分离@TAB

 

exect=$var_ii=##[input=BOX68]||$var_im=$var_ii&'n' pause=$var_im sndps=1 exect=MsgBox(262144+64,'Напоминаю','Прошло~~$var_ii~~минут(а/ы)~~!'&@CR&'Пора~~на~~кухню!') ;; 在指定的分钟后发出消息(号码在对话框中输入)

 

exect=$var_ii=##[input=BOX68]||$var_im=$var_ii&'n'||$var_pid=@AutoItPID pause=$var_im <TIME=h#-1:h#+1:s5> <IF> [info=s70*$var_pid] = 1 <THEN> sndps=1 <ELSE> close=:PID: <ENDIF> <TIMEEND> exect=MsgBox(262144+64,'Напоминаю','Прошло~~$var_ii~~минут~~!'&@CR&'Пора~~на~~кухню!') ;; 在指定的分钟后发出消息(数字在对话框中输入)+显示对话框时,每5秒发出声音通知$var_ii

 

exect=$var_s=ClipGet()||$var_i=StringInStr('$var_s','\')||MsgBox(4096,'Результат','$var_i') GLOBALEXECT<a> ;; 检查链接的位置或在剪贴板中检查符号"\"的示例,变量$var_i为0或大于0的数字

 

exect=$var_i=Execute(ClipGet())||MsgBox(4096,'Результат','$var_i') bufsr=##$var_i ;; 在剪贴板中执行数学表达式,例如:(1 + 2)* 3 + 2 ^ 3

 

exect=$var_i=Execute(ClipGet()+1)||MsgBox(4096,'Результат','$var_i') bufsr=##$var_i ;; 在剪贴板中添加一个号码

 

exect=Run('notepad.exe')||$var_h=WinWaitActive('[CLASS:Notepad]')||ControlSend(Eval('var_h'),'''','Edit1','закройте~~окно')||WinWaitClose(Eval('var_h'))||MsgBox(4096,'''','окно~~закрыто') ;; 运行"记事本",等待用户关闭窗口

 

exect=Run('notepad.exe')||$var_h=WinWaitActive('[CLASS:Notepad]')||ControlSend(Eval('var_h'),'''','Edit1','сверните~~окно')||WinWaitNotActive(Eval('var_h'))||MsgBox(4096,'''','окно~~не~~активно') ;; 运行"记事本",等到窗口不活动

 

exect=ProcessWait('notepad.exe',3)||MsgBox(4096,'''','процесс~~существует') ;; 预计推出"记事本"

 

exect=$var_ipid=Run('notepad.exe')||ProcessWaitClose($var_ipid)||MsgBox(4096,'''','процесс~~завершился') ;; "记事本"开始并等待它关闭

 

exect=RunWait('notepad.exe')||MsgBox(4096,'''','программа~~закрыта') ;;启动"记事本",并暂停单元的操作,直到关闭

 

exect=$var_a=5||$var_b=6||$var_imax=$var_a>$var_b?$var_a:$var_b||MsgBox(4096,'Сообщение','Максимальное~~число~~'&$var_imax) ;; 通过三元条件确定最大数量

 

exect=$var_a=5||$var_b=6||$var_imin=$var_a<$var_b?$var_a:$var_b||MsgBox(4096,'Сообщение','Минимальное~~число~~'&$var_imin) ;; 通过三元条件确定最小数量

 

exect=$var_a=25||$var_b=5||$var_icheck=(Int($var_a/$var_b)<>$var_a/$var_b)?0:1||MsgBox(4096,'Сообщение','Делимость.~~Результат:~~'&$var_icheck) ;; 确定一个数字与另一个数字的可分割性(1可整除,0  - 不可整除)

 

exect=$var_nradian=3||$var_ngrad=$var_nradian*57.2957795130823||MsgBox(4096,'Сообщение','Градусы:~~'&$var_ngrad) ;; 从给定的弧度获得度数

 

exect=$var_ngrad=180||$var_nradian=$var_ngrad/57.2957795130823||MsgBox(4096,'Сообщение','Радианы:~~'&$var_nradian) ;; 从给定的度数得到弧度

 

imgpr=1 <IF> <info=f1%P%N//> = clpget <THEN> exect=$var_ibutton=MsgBox(4096,'Сообщение','Контрольные~~суммы~~совпадают.') <ELSE> exect=$var_ibutton=MsgBox(4096,'Сообщение','Контрольные~~суммы~~не~~совпадают.') <ENDIF> ;; 将MD5文件的校验和与剪贴板的校验和进行比较,将结果报告给系统示例窗口

 

exect=$var_n=MsgBox(4+32+262144,'Сообщение','Продолжить~~работу?',20)||$var_i=$var_n=7?_Exit():1||_ViewValues('Работа~~продолжена') ;; 一个对话呼叫的例子,按"无"按钮完成,通过点击"是"按钮继续,在对话框出现后的20秒到期,同样的继续工作...

 

exect=$var_n=MsgBox(4+32+262144,'Сообщение','Отменить~~задачу?',20)||$var_i=$var_n=6?_Exit():1||_ViewValues('Работа~~продолжена') ;; 对话呼叫的一个例子,点击"是"按钮完成,继续按"无"按钮,在对话框出现后20秒到期,同样继续工作...

 

exect=$var_n=MsgBox(4+32+262144,'Сообщение','Заменить~~содержимое~~в~~папке~~ПН?')||$var_i=$var_n=7?_Exit():1 delss=PS<%T%M>||1 copys=FOLDC<%L>||%T%M//0 beepss ;; 使用活动面板中所选文件夹的内容替换目标面板中目录的内容

 

exect=$var_sext=##<info=f230%P%N//>||MsgBox(4096+64,'Информация',StringUpper('$var_sext')&'~~-~~оригинальное~~расширение~~файла:'&@CRLF&@CRLF&'%P%N') ;; 在光标下获取原始文件扩展名

 

exect=$var_n=MsgBox(4+32+262144,'Сообщение','Удалить~~текущую~~папку?')||$var_i=$var_n=7?_Exit():1 tcimg=$cm2002 delsm="%p"||1||upd<1> ;; 删除当前文件夹(取消动作的能力)

 

<IF> <info=f1%P%N//> = <info=f1%T%M//> <THEN> exect=MsgBox(64+4096,'Результат','Контрольные~~суммы~~совпадают.') <ELSE> exect=MsgBox(48+4096,'Результат','Контрольные~~суммы~~не~~совпадают.') <ENDIF> ;; 在手动关闭弹出窗口比较文件的MD5校验两种不同的面板,宣布结果(第一次点击一个文件,跳到对侧面板扫描文件)

 

slist=%L <IF> <info=f1GLOBALSLIST<1>//> = <info=f1GLOBALSLIST<2>//> <THEN> exect=MsgBox(64+4096,'Результат','Контрольные~~суммы~~совпадают.') <ELSE> exect=MsgBox(48+4096,'Результат','Контрольные~~суммы~~не~~совпадают.') <ENDIF> ;; 比较两个选定文件的MD5校验和,在手动关闭的弹出窗口中,报告结果

 

exect=$var_s=ClipGet()||$var_i=StringRegExp(ClipGet(),'([^A-Za-z\d])',0)?MsgBox(48+4096,'Результат','Число~~в~~буфере~~не~~является~~хэшем.')&_Exit():1||$var_i=StringLen('$var_s')||$var_n=$var_i=8?3:($var_i=32?1:($var_i=64?6:($var_i=128?8:MsgBox(48+4096,'Результат','Число~~в~~буфере~~не подходит~~под~~условие~~проверки.')&_Exit())))||$var_path=$var_n&'%P%N' <IF> <info=f$var_path|1//> = $var_s <THEN> exect=MsgBox(64+4096,'Результат','Контрольные~~суммы~~совпадают.') <ELSE> exect=MsgBox(48+4096,'Результат','Контрольные~~суммы~~не~~совпадают.') <ENDIF> ;; 取决于缓冲线长度校验文件进行比较光标和剪贴板下:如果如图8所示,比较发生CRC32,如果32  -  MD5,如果64  -  SHA256,如果128  -  SHA512,具有手动关闭一个弹出窗口,报告结果

 

textv=C:\Test.txt exect=$var_n=MsgBox(4+32+262144,'Сообщение','Продолжить~~выполнение~~команды?')||$var_i=$var_n=7?_Exit():1 sends=C:\Test.txt??-1||&&[^\r\n]+=!! textt=C:\Test.txt||##TOTALCMD#BAR#DATA@CRLFGLOBALSENDS<x2>@CRLFGLOBALSENDS<x3>@CRLFGLOBALSENDS<x1>@CRLFGLOBALSENDS<x6>@CRLFGLOBALSENDS<x4> ;; 在浏览器中打开的文件c:\Test.txt的,关闭浏览器,在弹出的对话框中,选择续命令或取消,如果继续,则文件C的内容:\Test.txt的放弃一切的第一个等号和法操纵后获得的字符串引导他们到所需的形式

 

exect=$var_n=MsgBox(4+32+262144,'Сообщение','Отменить~~последнее~~переименование?')||$var_i=$var_n=7?_Exit():1 renms=$f200Lists\AfterRenaming.txt||list<$f200Lists\BeforeRenaming.txt>||upd<1> ;;取消TCIMG执行的最后重命名(需要确认)

 

exect=$var_i=##<info=t1-1>||$var_s=$var_i=4?'v,1,4':($var_i>4?'v,3,5':MsgBox(4096,'Ошибка','Э-э-э,~~а~~其中~~нормальные~~данные?')&_Exit())||_ViewValues('$var_s') rends=-1!!-1||?T|$var_s GLOBALRENDS<a> ;; 如果在剪贴板4行,然后执行一个命令,如果超过4,那么另一个,如果少,那么消息带有输出

 

exect=$var_n=MsgBox(4+32+262144,'Сообщение','Удалить~~файлы~~с~~счётчиком~~_№~~в~~конце~~имени?')||$var_i=$var_n=7?_Exit():1 delss=PS<"%p"//1//0>||1||test<1n!!_\d+$>||upd<1> ;; 在名称末尾删除活动面板中带有编号_ _的文件(不带递归)

 

exect=$var_n=MsgBox(4+32+262144,'Сообщение','Удалить~~файлы~~с~~цифрами~~в~~именах?')||$var_i=$var_n=7?_Exit():1 delss=PS<"%p"//1//0>||1||test<1n!!\d>||upd<1> ;; 在活动面板中删除文件名,其中有数字(无递归)

 

exect=$var_n=MsgBox(4+32+262144,'Сообщение','Удалить~~файлы~~с~~цифрами~~в~~именах?')||$var_i=$var_n=7?_Exit():1 delss=PS<"%p"//1//0>||1||test<1n!!\d>||upd<1> ;; 在活动面板中删除其名称中包含数字的文件(需要确认)

up2

tcimage © Аверин Андрей для Total Commander Image Averin-And@yandex.ru