Описание функции


MsgBox

Отображает простое окно сообщения с опциональным временем отображения.

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

Параметры

flag Параметр указывает на тип окна сообщения и возможные комбинации отображаемых кнопок. См. примечания.
title Заголовок окна сообщения.
Если параметр "title" равен ключевому слову Default, будет использован макрос @ScriptName
Если параметр "title" равен ключевому слову Null, то названия в заголовке не будет.
text Текст окна сообщения.
timeout [необязательный] Время ожидания (в секундах), по истечении которого MsgBox будет автоматически закрыт (по умолчанию 0, что означает, что время отображения не ограничено).
hwnd [необязательный] Дескриптор родительского окна. Предотвращает доступ к родительскому окну, пока существует MsgBox.

Возвращаемое значение

Успех:Возвращает ID нажатой кнопки.
Ошибка:Возвращает -1, если истекло время отображения окна сообщения.

Нажатая кнопкаВозвращаемое значение (ID нажатой кнопки)
OK1
Отмена (Cancel)2
Прервать (Abort)3
Повтор (Retry)4
Пропустить (Ignore)5
Да (Yes)6
Нет (No)7
Повторить (Try again) **10
Продолжить (Continue) **11

Примечания

Параметр flag может быть комбинацией следующих значений:

flag, DecОтображаемые кнопкиflag, Hex
0OK0x0
1OK и Отмена0x1
2Прервать, Повтор и Пропустить0x2
3Да, Нет и Отмена0x3
4Да и Нет0x4
5Повтор и Отмена0x5
6 **Отмена, Повторить, Продолжить0x6
Отображаемая иконка
0(Нет)0x0
16"Стоп"0x10
32"Знак вопроса"0x20
48"Предупреждение"0x30
64"Информация", с 'i' в кружке0x40
Выделенная кнопка по умолчанию, вызываемая по Enter
0Первая кнопка0x0
256Вторая кнопка0x100
512Третья кнопка0x200
768Четвёртая кнопка0x300
Модальность
0Приложение (Application)0x0
4096Системная, поверх всех окон (System modal)0x1000
8192Блокирует родительское окно (Task modal)0x2000
Другое
0(ничего специального)0x0
262144MsgBox имеет атрибут "поверх всех окон"0x40000
524288Заголовок и текст выравниваются по правому краю0x80000
1048576Заголовок и текст отображается справа налево0x100000

** Доступно только в Windows 2000/XP и выше.

К примеру, чтобы указать окно SYSTEMMODAL с кнопками Да/Нет, следует указать параметр flag равным 4096+4 (или 4100). При использовании шестнадцатеричного значения - 0x1000+0x4 (или 0x1004).

Окно сообщения появляется в центре экрана с размерами, пропорциональными выводимому тексту. Однако заголовок может быть обрезан при использовании флага SYSTEMMODAL (4096).


Функцию можно подключить через команду exect
Для передачи пустой строки можно воспользоваться ключевым словом Null
Для передачи значения по умолчанию можно воспользоваться ключевым словом Default

См. также

ToolTip, SplashTextOn, _MsgBox, InputBox, [msgbx], shape, style, dilog, stylp, infbx, infht, posts

Примеры:
 Как создать кнопку?


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='привет'||$var_s2='пока' exect=$var_s1='$var_s2'&'~~'&'$var_s1' exect=MsgBox(4096,'Результат','$var_s1') ;; пример работы с переменными и со строками

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) ;; пример возвращения последнего элемента массива $var_aa, одновременно удаляя его из массива

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') ;; пример объединение ячеек массива в одну строку, разделяя @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&'Пора~~на~~кухню!') ;; через заданное количество минут выдать сообщение (количество вводится в диалоге) + в течении отображения диалога издавать звуковое уведомление $var_ii через каждые 5 секунд

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'),Null,'Edit1','закройте~~окно')||WinWaitClose(Eval('var_h'))||MsgBox(4096,Null,'окно~~закрыто') ;; запустить "Блокнот", дождаться закрытие окна пользователем

exect=Run('notepad.exe')||$var_h=WinWaitActive('[CLASS:Notepad]')||ControlSend(Eval('var_h'),Null,'Edit1','сверните~~окно')||WinWaitNotActive(Eval('var_h'))||MsgBox(4096,Null,'окно~~не~~активно') ;; запустить "Блокнот", дождаться когда окно не будет активным

exect=ProcessWait('notepad.exe',3)||MsgBox(4096,Null,'процесс~~существует') ;; ожидает запуска "Блокнота"

exect=$var_ipid=Run('notepad.exe')||ProcessWaitClose($var_ipid)||MsgBox(4096,Null,'процесс~~завершился') ;; запускает "Блокнот" и ожидает его закрытия

exect=RunWait('notepad.exe')||MsgBox(4096,Null,'программа~~закрыта') ;; запускает "Блокнот" и приостанавливает работу утилиты до его закрытия

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<%WL>||%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=%WL <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> ;; в активной панели удалить файлы в имени которых есть цифры (с запросом для подтверждения)

imgpr=1 start=FLAC||-s||--ignore-chunk-sizes||-8||list<%WL>||%%d||&&hide||&&wait exect=$var_n=MsgBox(4+32+262144,'Сообщение','Удалить~~исходные~~файлы~~WAV?')||$var_i=$var_n=7?_Exit():1 delss=%WL||1 ;; конвертировать выделенные файлы WAV в формат FLAC с максимальной компрессией с сохранением в активной панели, с удалением (требуется подтверждение) исходных WAV в корзину (используется кодер/декодер FLAC)

exect=$var_n=MsgBox(4+32+262144,'Сообщение','Удалить~~выделенные~~объекты?')||$var_i=$var_n=7?_Exit():1 delss=%WL||1 ;; удалить выделенные объекты минуя корзину (требуется подтверждение)

imgpr=1 slist=%WL xlist=%WL||##path<4> <FOR> 1 <TO> GLOBALSLIST<0> start=FFmpeg||-i||GLOBALSLIST<:INDEX:>||-acodec||libmp3lame||-q:a||[input=BOX84]||GLOBALXLIST<:INDEX:>.mp3||&&hide||&&wait <NEXT> exect=$var_n=MsgBox(4+32+262144,'Сообщение','Удалить~~исходные~~файлы?')||$var_i=$var_n=7?_Exit():1 delss=$GLOBALSLIST||1||upd<1> ;; конвертировать выделенные файлы (медиаконтент) в mp3 с переменным битрейтом (выбор в диалоговом окне), с сохранением в активной панели + удаление исходных файлов (требуется подтверждение)
marks=1||test<1n!!\(\d+\)$> exect=$var_n=MsgBox(4+32+262144,'Сообщение','Удалить~~файлы~~с~~счётчиком~~()~~в~~конце~~имён?')||$var_i=$var_n=7?_Exit():1 delss=[tc=AL]||1||upd<1> ;; удалить файлы с счётчиком (№) в конце имён

exect=MsgBox(4096+64,'Результат','Заданная~~фраза~~встречается~~в~~файле~~'&(StringSplit(FileRead('%P%N'),'привет',1)[0]-1)&'~~раз(а)') ;; получить количество раз встречающейся фразы в файле под курсором

exect=MsgBox(4096+64,'Результат','Фраза~~из~~буфера~~обмена~~встречается~~в~~файле~~'&(StringSplit(FileRead('%P%N'),ClipGet(),1)[0]-1)&'~~раз(а)') ;; получить количество раз встречающейся фразы из буфера обмена в файле под курсором

exect=MsgBox(4096+64,Null,'Hello') ;; пример сообщения без названия заголовка

exect=MsgBox(4096+64,Default,'Hello') ;; пример сообщения с заголовком имени утилиты

exect=$var_result=MsgBox(4096+64+1,Null,'Hello',0,WinGetHandle('[CLASS:TTOTAL_CMD]'))||_ViewValues($var_result) ;; пример диалога с блокировкой окна (предотвращает доступ к указанному родительскому окну, пока существует MsgBox)

exect=$var_result=MsgBox(16384+4096+64+1,Null,'Hello',0,WinGetHandle('[CLASS:AkelPad4]'))||_ViewValues($var_result) ;; пример диалога с блокировкой окна (предотвращает доступ к указанному родительскому окну, пока существует MsgBox)

slist=FOLDC<"C:\PathList.txt"//0//1>||<dellist=C:\DelList.txt|5> exect=$var_i='GLOBALSLIST<1>'=''''?_CmdCm('infht=-1¦¦Сообщени妦Список~~файлов~~для~~удаления~~пуст¦¦260¦¦70<¤>toexit'):1 exect=$var_n=MsgBox(4+32+262144,'Сообщение','Удалить~~файлы?')||$var_i=$var_n=7?_Exit():1 delss=$GLOBALSLIST||1||recycle<1> beepss ;; удалить все файлы в каталогах из списка путей C:\PathList.txt исключая файлы, чьи имена совпадают с именами из списка имён C:\DelList.txt (в корзину с подтверждением)

alist=@%P%N||&&\.bak$!!||**2!! listx=@GLOBALALIST<1>||2 <IF> <info=t61$GLOBALLISTX[1]> = 0 <THEN> copyy=%P%N||"%p"//1||&&\.bak$!!||**2!! <ELSE> exect=$var_n=MsgBox(4+32+262144,'Сообщение','Заменить~~существующий~~объект~~из~~*.bak?')||$var_i=$var_n=7?_Exit():1 copyy=%P%N||"%p"//1||&&\.bak$!!||**2!! <ENDIF> ;; восстановить объект из *.bak под курсором автоматически, если объект отсутствует, в случае наличия объекта выдать запрос на замену

alist=[tc=AF-1f]||<dellist=C:\files.txt|6> <IF> 0 <> <info=t61$GLOBALALIST[1]> <THEN> exect=$var_n=MsgBox(4+32+262144,'Сообщение','Удалить~~файлы?')||$var_i=$var_n=7?_Exit():1 delss=$GLOBALALIST||1||upd<1> <ELSE> infht=-1||Сообщение||Подобных~~файлов~~не~~найдено||230||60 <ENDIF> ;; удалить, минуя корзину, файлы в активной панели по списку(имена с расширениями) C:\files.txt (требуется подтверждение удаления)

alist=[tc=AF-1f]||<dellist=C:\files.txt|6> <IF> 0 <> <info=t61$GLOBALALIST[1]> <THEN> exect=$var_n=MsgBox(4+32+262144,'Сообщение','Удалить~~файлы?')||$var_i=$var_n=7?_Exit():1 delss=$GLOBALALIST||1||recycle<1>||upd<1> <ELSE> infht=-1||Сообщение||Подобных~~файлов~~не~~найдено||230||60 <ENDIF> ;; удалить в корзину файлы активной панели по списку(имена с расширениями) C:\files.txt (требуется подтверждение удаления)

imgpr=1 slist=PS<"%T"//2//0>||test<1f!!1!!0!!Del.fl> exect=$var_i='GLOBALSLIST<1>'=''''?_CmdCm('infbx=InfoBox17<¤>toexit'):1 xlist=FOLDC<$GLOBALSLIST//0//0>||<dellist=C:\ListOfNames.txt|5> exect=$var_n=MsgBox(4+32+262144,'Сообщение','Удалить~~объекты?')||$var_i=$var_n=7?_Exit():1 delss=$GLOBALXLIST||1 ;; в папках неактивной панели содержащих файл Del.fl удалить все объекты кроме указанных в списке имён из файла C:\ListOfNames.txt (требуется подтверждение удаления)

<IF> <info=o9"%pfiles1.f-l"> = 2 AND <info=o9"%pinfo.f-l"> = 0 <THEN> renmm="%p"journal.txt.bak||**0!! exect=$var_n=MsgBox(4+32+262144,'Сообщение','удалить~~файлы~~LOG.txt~~и~~LOG.old?')||$var_i=$var_n=7?_Exit():1 delss=LISTF<"%p"LOG.txt/"%p"LOG.old>||1||upd<1> <ENDIF> ;; если в активной панели есть файл files1.f-l и нет файла info.f-l, то переименовать файл journal.txt.bak в journal.txt и удалить(с подтверждением) файлы LOG.txt и LOG.old

<IF> <info=o9"%pfiles1.f-l"> = 2 AND <info=o9"%pinfo.f-l"> = 0 <THEN> renmm="%p"journal.txt.bak||**0!! exect=$var_n=MsgBox(4+32+262144,'Сообщение','удалить~~файлы~~LOG.txt~~и~~LOG.old?')||$var_i=$var_n=7?_Exit():1 delss=LISTF<"%p"LOG.txt/"%p"LOG.old>||1||upd<1> <ENDIF> ;; если в активной панели есть файл files1.f-l и нет файла info.f-l, то переименовать файл journal.txt.bak в journal.txt и удалить (с подтверждением) файлы LOG.txt и LOG.old

slist=FOLDC<%WL//0>||<dellist=C:\DelList.txt|5> exect=$var_n=MsgBox(4+32+262144,'Сообщение','Удалить~~GLOBALSLIST<0>~~объектов?')||$var_i=$var_n=7?_Exit():1 delss=$GLOBALSLIST||1||recycle<1> ;; в выделенных папках удалить в корзину объекты 1-го уровня имена которых не указаны в списке C:\DelList.txt

sends=-1??-1 slist=FOLDC<%WL//0>||<dellist=$GLOBALSENDS|5> exect=$var_n=MsgBox(4+32+262144,'Сообщение','Удалить~~GLOBALSLIST<0>~~объектов?')||$var_i=$var_n=7?_Exit():1 delss=$GLOBALSLIST||1||recycle<1> ;; в выделенных папках удалить в корзину объекты 1-го уровня имена которых не совпадают с именами из списка в буфера обмена

slist=FOLDC<PS<"%p"//2//0>//0>||<dellist=C:\DelList.txt|5> exect=$var_n=MsgBox(4+32+262144,'Сообщение','Удалить~~GLOBALSLIST<0>~~объектов?')||$var_i=$var_n=7?_Exit():1 delss=$GLOBALSLIST||1||recycle<1> ;; во всех папках активной панели удалить в корзину объекты 1-го уровня имена которых не указаны в списке C:\DelList.txt

sends=-1??-1 slist=FOLDC<PS<"%p"//2//0>//0>||<dellist=$GLOBALSENDS|5> exect=$var_n=MsgBox(4+32+262144,'Сообщение','Удалить~~GLOBALSLIST<0>~~объектов?')||$var_i=$var_n=7?_Exit():1 delss=$GLOBALSLIST||1||recycle<1> ;; во всех папках активной панели удалить в корзину объекты 1-го уровня имена которых не совпадают с именами из списка в буфера обмена

slist=FOLDC<%WL//0>||<dellist=C:\DelList.txt|9> exect=$var_n=MsgBox(4+32+262144,'Сообщение','Удалить~~GLOBALSLIST<0>~~объектов?')||$var_i=$var_n=7?_Exit():1 delss=$GLOBALSLIST||1||recycle<1> ;; в выделенных папках удалить в корзину все объекты 1-го уровня с именами из списка C:\DelList.txt

sends=-1??-1 slist=FOLDC<%WL//0>||<dellist=$GLOBALSENDS|9> exect=$var_n=MsgBox(4+32+262144,'Сообщение','Удалить~~GLOBALSLIST<0>~~объектов?')||$var_i=$var_n=7?_Exit():1 delss=$GLOBALSLIST||1||recycle<1> ;; в выделенных папках удалить в корзину все объекты 1-го уровня с именами из списка буфера обмена

sends=@c:\rar_xx start=RAR||-IBCK||-INUL||x||-p1256||%P%N||GLOBALSENDS<1>\||&&wait exect=$var_i=GLOBALPROGR<1>=0?0:_CmdCm('delsm=GXLOBALSENDS<1>¦¦1')+MsgBox(4096,'Ошибка','Ошибка~~~~GLOBALPROGR<1>'&@CR&'Работа~~прервана!')+_Exit() delsm=GLOBALSENDS<1>||1||upd<1> ;; распаковать запароленный архив (пароль 1256) в папку "rar_xx", если неверный пароль или какая-либо другая ошибка, то выдаётся сообщение и работа прекращается
sends=@c:\rar_xx start=RAR||-IBCK||x||-p123456||%P%N||GLOBALSENDS<1>\||&&wait exect=$var_i=GLOBALPROGR<1>=0?0:_CmdCm('delsm=GLOBALSENDS<1>¦¦1')+MsgBox(4096,'Ошибка','Ошибка~~~~GLOBALPROGR<1>'&@CR&'Работа~~прервана!')+_Exit() start=RAR||-IBCK||a||-r||-ep1||"%t%O".rar||GLOBALSENDS<1>\||GLOBALSENDS<1>\*||&&wait delsm=GLOBALSENDS<1>||1||upd<1> ;; запароленный (пароль 123456) архив под курсором распаковать во временную папку "c:\rar_xx" и запаковать объекты в другую панель в именной архив без пароля и удалить временную папку, если при распаковке неверный пароль или какая-либо другая ошибка, то выдаётся сообщение и работа прекращается
sends=@c:\rar_xx slist=%WL forpgs <FOR> 1 <TO> GLOBALSLIST<0> start=RAR||-IBCK||-INUL||x||-p123456||GLOBALSLIST<:INDEX:>||GLOBALSENDS<1>\||&&wait exect=$var_i=GLOBALPROGR<1>=0?0:_CmdCm('delsm=GLOBALSENDS<1>¦¦1')+MsgBox(4096,'Ошибка','Ошибка~~~~GLOBALPROGR<1>'&@CR&'Работа~~прервана!')+_Exit() delsm=GLOBALSLIST<:INDEX:>||1 start=RAR||-IBCK||a||-r||-ep1||GLOBALSLIST<:INDEX:>||GLOBALSENDS<1>\||GLOBALSENDS<1>\*||&&wait delsm=GLOBALSENDS<1>||1 <NEXT> ;; выделенные запароленные архивы (пароль 123456) перепаковать в именные архивы без пароля с заменой исходников, если при распаковке неверный пароль или какая-либо другая ошибка, то выдаётся сообщение и работа прекращается
sends=@c:\rar_xx dilog=[input=BOX64] slist=%WL forpgs <FOR> 1 <TO> GLOBALSLIST<0> start=RAR||-IBCK||-INUL||x||-pGLOBALINPUT<1>||GLOBALSLIST<:INDEX:>||GLOBALSENDS<1>\||&&wait exect=$var_i=GLOBALPROGR<1>=0?0:_CmdCm('delsm=GLOBALSENDS<1>¦¦1')+MsgBox(4096,'Ошибка','Ошибка~~~~GLOBALPROGR<1>'&@CR&'Работа~~прервана!')+_Exit() delsm=GLOBALSLIST<:INDEX:>||1 start=RAR||-IBCK||a||-r||-ep1||GLOBALSLIST<:INDEX:>||GLOBALSENDS<1>\||GLOBALSENDS<1>\*||&&wait delsm=GLOBALSENDS<1>||1 <NEXT> ;; выделенные запароленные архивы (пароль вводится в диалоге) перепаковать в именные архивы без пароля с заменой исходников, если при распаковке неверный пароль или какая-либо другая ошибка, то выдаётся сообщение и работа прекращается
sends=@c:\rar_xx start=RAR||-IBCK||x||%P%N||GLOBALSENDS<1>\||&&wait exect=$var_i=GLOBALPROGR<1>=0?0:_CmdCm('delsm=GLOBALSENDS<1>¦¦1')+MsgBox(4096,'Ошибка','Ошибка~~~~GLOBALPROGR<1>'&@CR&'Работа~~прервана!')+_Exit() start=RAR||-IBCK||a||-r||-ep1||"%t%O".zip||GLOBALSENDS<1>\||GLOBALSENDS<1>\*||&&wait delsm=GLOBALSENDS<1>||1||upd<3> ;; архив под курсором распаковать во временную папку "c:\rar_xx" и запаковать объекты в другую панель в именной архив zip и удалить временную папку, если при распаковке какая-либо ошибка, то выдаётся сообщение и работа прекращается
sends=zip|rar|7z|ace|arj|cab|gz|jar|lzh|tar|xz??-4 dilog=[combo=BOX36] sends=@c:\rar_xx start=RAR||-IBCK||x||%P%N||GLOBALSENDS<1>\||&&wait exect=$var_i=GLOBALPROGR<1>=0?0:_CmdCm('delsm=GLOBALSENDS<1>¦¦1')+MsgBox(4096,'Ошибка','Ошибка~~~~GLOBALPROGR<1>'&@CR&'Работа~~прервана!')+_Exit() start=RAR||-IBCK||a||-r||-ep1||"%t%O".GLOBALCOMBO<1>||GLOBALSENDS<1>\||GLOBALSENDS<1>\*||&&wait delsm=GLOBALSENDS<1>||1||upd<3> ;; архив под курсором распаковать во временную папку "c:\rar_xx" и запаковать объекты в другую панель в именной архив и удалить временную папку (тип архива вводится в диалоге), если при распаковке какая-либо ошибка, то выдаётся сообщение и работа прекращается
exect=$var_i=(<info=o9"%P"MKOFC.DLL>=0~~OR~~<info=o9"%P"MKOFC64.DLL>=0)?MsgBox(4096,'Ошибка','Нет~~файлов')&_Exit():0 infbx=InfoBox_TEST1 ;; пример: если в активной панели нет одного из заданных файлов, то сообщение и выход из команды

exect=$var_i=<info=o9"%P"MKOFC.DLL>+<info=o9"%P"MKOFC64.DLL>=4?0:MsgBox(4096,'Ошибка','Нет~~файлов')&_Exit() infbx=InfoBox_TEST1 ;; пример: если в активной панели есть оба заданных файлов, то работа продолжается, иначе сообщение и выход из команды

sends=zip|rar|7z|ace|arj|cab|gz|jar|lzh|tar|xz|wim??-4 dilog=[combo=BOX36] sends=@C:\rar_xx start=%%COMMANDER_PATH%%\Programs\Arhive\WinRAR\WinRAR.exe||x||%P%N||GLOBALSENDS<1>\||&&wait exect=$var_i=GLOBALPROGR<1>=0?0:_CmdCm('delsm=GLOBALSENDS<1>¦¦1')+MsgBox(4096,'Ошибка','Ошибка~~~~GLOBALPROGR<1>'&@CR&'Работа~~прервана!')+_Exit() start=%%COMMANDER_PATH%%\Plugins\wcx\Total7zip\7zG.exe||a||-ad||"%t%O".GLOBALCOMBO<1>||GLOBALSENDS<1>\*||&&wait delsm=GLOBALSENDS<1>||1||upd<3> ;; архив под курсором распаковать во временную папку "C:\rar_xx" с помощью WinRAR и запаковать объекты в другую панель в именной архив и удалить временную папку (тип архива вводится в диалоге) с помощью 7zG.exe, если при распаковке какая-либо ошибка, то выдаётся сообщение и работа прекращается
sends=zip|rar|7z|ace|arj|cab|gz|jar|lzh|tar|xz|wim??-4 dilog=[combo=BOX36] sends=@C:\rar_xx start=%%COMMANDER_PATH%%\Programs\Arhive\WinRAR\WinRAR.exe||x||%P%N||GLOBALSENDS<1>\||&&wait exect=$var_i=GLOBALPROGR<1>=0?0:_CmdCm('delsm=GLOBALSENDS<1>¦¦1')+MsgBox(4096,'Ошибка','Ошибка~~~~GLOBALPROGR<1>'&@CR&'Работа~~прервана!')+_Exit() exect=StringInStr('|7z|zip|tar|wim|','|GLOBALCOMBO<1>|')?1:0 <IF> GLOBALEXECT<1> = 1 <THEN> start=%%COMMANDER_PATH%%\Plugins\wcx\Total7zip\7zG.exe||a||-ad||"%t%O".GLOBALCOMBO<1>||GLOBALSENDS<1>\*||&&wait <ELSE> start=%%COMMANDER_PATH%%\Programs\Arhive\WinRAR\WinRAR.exe||a||-r||-ep1||"%t%O".GLOBALCOMBO<1>||GLOBALSENDS<1>\||GLOBALSENDS<1>\*||&&wait <ENDIF> delsm=GLOBALSENDS<1>||1||upd<3> ;; архив под курсором распаковать во временную папку "C:\rar_xx" с помощью WinRAR и запаковать объекты в другую панель в именной архив и удалить временную папку (тип нового архива вводится в диалоге); для упаковки 7z, zip, tar, wim используется 7zG.exe, в ином случае WinRAR; если при распаковке появляется какая-либо ошибка, то выдаётся сообщение и работа прекращается
alist=FOLDM<%WL//-1>||<dellist=$f212\Ffiles.txt|9> <IF> 0 <> <info=t61$GLOBALALIST[1]> <THEN> exect=$var_n=MsgBox(4+32+262144,'Сообщение','Удалить~~файлы?')||$var_i=$var_n=7?_Exit():1 delss=$GLOBALALIST||1||upd<1> <ELSE> infht=-1||Сообщение||Подобных~~файлов~~не~~найдено||250||60 <ENDIF> ;; в выделенных папках с рекурсией удалить, минуя корзину, файлы в активной панели по списку Ffiles.txt (имена с расширениями) (требуется подтверждение удаления)

sends=$f212\Ffiles.txt??-1||?Fslash1 alist=FOLDM<%WL//-3||0>||<dellist=$GLOBALSENDS|9> <IF> 0 <> <info=t61$GLOBALALIST[1]> <THEN> exect=$var_n=MsgBox(4+32+262144,'Сообщение','Удалить~~объекты?')||$var_i=$var_n=7?_Exit():1 delss=$GLOBALALIST||1||upd<1> <ELSE> infht=-1||Сообщение||Подобных~~объектов~~не~~найдено||250||60 <ENDIF> ;; в выделенных папках без рекурсии удалить объекты, которые есть в списке Ffiles.txt (имена с расширениями и/или имена подпапок\ с конечным слешем)

sends=$f212\Ffiles.txt??-1||?Fslash1 alist=FOLDM<%WL//-3||0>||<dellist=$GLOBALSENDS|5> <IF> 0 <> <info=t61$GLOBALALIST[1]> <THEN> exect=$var_n=MsgBox(4+32+262144,'Сообщение','Удалить~~объекты?')||$var_i=$var_n=7?_Exit():1 delss=$GLOBALALIST||1||upd<1> <ELSE> infht=-1||Сообщение||Подобных~~объектов~~не~~найдено||250||60 <ENDIF> ;; в выделенных папках без рекурсии удалить объекты, которых нет в списке Ffiles.txt (имена с расширениями и/или имена подпапок\ с конечным слешем)

sends=[edits=BOX12]??-1 bends=$f212\FList.txt??-1 kends=$GLOBALSENDS??-1||?KGLOBALBENDS<0> $GLOBALBENDS&GLOBALSENDS<0> $GLOBALBENDS@$GLOBALKENDS exect=$var_n=MsgBox(4+32+262144,'Сообщение','Удалить~~файлы?')||$var_i=$var_n=7?_Exit():1 delss=$GLOBALBENDS beepss ;; удалить введённые имена файлов в папках по списку из FList.txt

sends=$f212\ForDel.txt??-1||?Fslash1 alist=PS<"%T"//0//0>||<dellist=$GLOBALSENDS|5> <IF> 0 <> <info=t61$GLOBALALIST[1]> <THEN> exect=$var_n=MsgBox(4+32+262144,'Сообщение','Удалить~~объекты?')||$var_i=$var_n=7?_Exit():1 delss=$GLOBALALIST||1||upd<3> <ELSE> infht=-1||Сообщение||Подобных~~объектов~~не~~найдено||250||60 <ENDIF> ;; в противоположной панели удалить (без рекурсии) с подтверждением все объекты кроме тех, имена которых есть в "ForDel.txt"

exect=@HOUR=5?MsgBox(4096,'Спать',@HOUR&'~~часов')+_Exit():0 ;; если 5 часов, то выдать сообщение

exect=$var_i=FileExists('"%T"PsiPhon.f_l')?0:MsgBox(4096,'Ошибка','Нет~~файла')+_Exit() infbx=InfoBox_TEST1 ;; если в неактивной панели нет файла PsiPhon.f_l, то выдать сообщение и выход, если есть запустить следующую команду

sends=PS<"%T"//1//0//*.bck> exect=$var_i='GLOBALSENDS<1>'=''''?MsgBox(4096,'Ошибка','Нет~~файла')+_Exit():0 infbx=InfoBox_TEST1 ;; если в неактивной панели нет файла с расширением bck, то выдать сообщение и выход, если есть запустить следующую команду

exect=ProcessExists('AkelPad.exe')?0:MsgBox(4096+64,'Проверка','AkelPad~~не~~запущен',3)+_Exit() infbx=InfoBox_TEST1 ;; если процесс AkelPad существует, то выполнить дальнейшие команды (если не существует, то сообщение и выход)

exect=ProcessExists('AkelPad.exe')?MsgBox(4096+64,'Проверка','AkelPad~~запущен',3)+_Exit():0 infbx=InfoBox_TEST1 ;; если процесс AkelPad не существует, то выполнить дальнейшие команды (если существует, то сообщение и выход)

exect=MsgBox(4096,'Сообщение','Файл_под_курсором_защищён_системой?~~'&(DllCall('sfc.dll','bool','SfcIsFileProtected','handle',0,'wstr','%P%N')[0]=0?'No':'Yes')) ;; проверить защищён ли файл под курсором и выдать сообщение

exect=MsgBox(4096,'Сообщение','Каталог_под_курсором_пустой?~~'&(DllCall('shlwapi.dll','bool','PathIsDirectoryEmptyW','wstr','%P%N')[0]?'Yes':'No')) ;; определяет, является ли указанный путь пустым каталогом

exect=MsgBox(4096,'Сообщение','Под_курсором_каталог_или_файл?~~'&(DllCall('shlwapi.dll','bool','PathIsDirectoryW','wstr','%P%N')[0]?'Каталог':'Файл')) ;; определяет, является ли указанный путь каталогом или файлом

dilog=[input=Относительный~~путь|Введите~~относительный~~путь] exect=MsgBox(0,'Абсолютный~~путь',_PathFull('GLOBALINPUT<1>')) ;; ввести относительный путь в диалоге, перевести в абсолютный и вывести в сообщении


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