CreatoR [?]
А расшифровку можно получить, самому не удалось понять это чудо
Убираем иконку, чтобы она после брутального закрытия скрипта не висела в трее.
Переменная под колличество "запусков", назначение смотреть ниже.
Assign('sExit', "MsgBox(0,'','The End')+ProcessClose(@AutoItPID)")
типа Func _Exit(), закрытие довольно брутально, но обычная функция Exit у меня не срабатывала (кстати, пункт Exit в меню в трее тоже не срабатывал).
Переменная под ввод из InputBox'а.
Собственно основная "функция" типа main.
Подсчёт кол-ва "запусков", назначение ещё ниже.
Execute(String(Chr(BitXor(72, StringLeft($i, 1))) & Chr(BitXor(114, StringMid($i, 2, 1))) & Chr(BitXor(101, StringMid($i, 3, 1))) & Chr(BitXor(65, StringRight($i, 1))) & StringTrimLeft($sExit, 4)))
Если $i равно 5123 (или около того, не помню ;)) запускается содержимое $sExit.
У $sExit удаляются первые 4 знака, на их место подставляются новые.
Эти новые зашифрованы Xor'ом, скрипт пытается их расшифровать с помощью цифр содержащихся в $i.
Когда и будет равно 5123 все 4 знака правильно расшифруются и String(...) вернёт правильное значение $sExit. Только тогда содержимое $sExit будет выполнено.
Assign('sString', InputBox('Calc', $sString & "" = "" & Execute($sString), $sString))
Сам InputBox, работает так же как и в первом моём посте.
Execute(String(Chr(BitXor(68, Asc(StringLeft($sString & @TAB, 1)))) & StringTrimLeft($sExit, 1)))
Добавляет к содержимому InputBox'а табулятор, если он окажется первым знаком, расшифровывается $sExit итд. Собственно проверка на пустой или закрытый InputBox. Надо было наверное с помощью StringLen(), но переписывать лень.
Запуск основной "функцию по новой".
Запуск основной функции в первый раз.
Получается рекурсия типа
main()
Func main()
main()
EndFunc
Поэтому я и сделал выход когда $i = 5123.
И через GUI поэтому врядли получится.
Вод для примера:
$var = Assign('i', 0) + Assign('sExec', "ConsoleWrite($i & @LF)+Assign('i', $i+1)+Execute($sExec)")+Execute(Eval('sExec'))
Ошибки кстати нормальной не выдаёт. Максимальное возможное колличество запусков похоже зависит от длинны $sExec.
Зы.
По причине этой самой рекурсии и назвался Гудвином.