Author Topic: Перезагрузка/перезапуск кликера из скрипта, как перезапустить Кликерманн хоткеем  (Read 2372 times)

0 Members and 1 Guest are viewing this topic.

Cleoss

  • Активный участник
  • ***
  • Posts: 260
  • Автоматизируй это!
    • View Profile
Привет всем!
Вот набросал пример скрипта, из которого можно при помощи горячей клавиши сделать перезагрузку всего кликера без лишних заморочек, для этого нам понадобятся два батника и nircmd, размещённый в системной папке win32 (что он собственно всегда и предлагает сделать с собой при его запуске без параметров). Зачем может понадобиться перезапускать кликер, это отдельная тема, но в данном листинге у нас будет меняться в качестве примера один параметр самого Кликерманна (fontsize, размер шрифта редактора), для вступления в силу новых настроек которого и потребуется включить кликер заново, разумеется полуавтоматически -- от вас потребуется только нажать хоткей.

Итак, вот сам скрипт:
[spoiler=setReload.cms]
Code: (clickermann) [Select]
#autorun
#name "setzArun"
logclear

define($init) // пример одноразовой функции
if ($init=0)
   $stri = INIREAD("..\data\config_editor.ini", "font_size", "global") // default fontsize is 10
   print($stri)
   inc($init)
end_if

if (iskeydown(#ctrl)=1)
   if (iskeydown(#b)=1)
      //WNDBUMP(wndfind("Editor - ")) // у меня не пашет этоо
      execute("activate.bat")
      waitms(500)
   end_if
   if (iskeydown(#r)=1)
      execute("setz.bat")
      halt(1)
   end_if
   if (iskeydown(#d)=1)
      $str = inputbox("Plz input fontsize: ", "10", 60)
      INIwrite("..\data\config_editor.ini", "font_size", $str, "global") // абсолютный путь не работает
      waitms(500)
   end_if
end_if
waitms(1)
[/spoiler]

У скрипта есть три хоткея:
Ctrl-B -- разворачивает кликер и ставит фокус ввода на него
Ctrl-R -- перегружает кликер и тем самым обновляет настройки
Ctrl-D -- запрашивает желаемый размер шрифта во встроенном редакторе кода

Теперича идут два батч-файла:
[spoiler=setz.bat]
Code: [Select]
echo off
cls
nircmd win close ititle "Clickermann - setzArun"
nircmd wait 7000
"H:\dlz\op\clickermann_last\Clickermann4.13b3\projects\setReload.cms"
nircmd wait 2000
nircmd win min ititle "C:\Windows\system32\cmd.exe"
exit
[/spoiler]
В данном батче надо прописать полный путь к перезапускаемому скрипту и возможно задать свои задержки.

Вот и второй бэтч:
[spoiler=activate.bat]
Code: [Select]
echo off
cls
nircmd win activate ititle "Clickermann - setzArun"
:: nircmd win focus ititle "Clickermann - setzArun"
nircmd win close ititle "C:\Windows\system32\cmd.exe"
exit
[/spoiler]
Он помогает нам дать фокус на кликер и развернуть его вместо встроенной кликеровской функции wndbump, которая к примеру у меня работает как-то вяло. Надо заметить, что перезапуск кликера со включённым скриптом, который слушает ваши хоткеи, становится возможным длагодаря включению в наш макрос директивы #autorun. Надо признаться, это первый мой эксперимент с автозапуском кликера и для меня было сюрпризом, что кликер запускается свёрнутым  и что я не могу при работающем скрипте зайти в редактор, чтоб посмотреть обновление параметра. Поначалу Кликерманн ваще выдал мне пасхалочку с эпичным каментом, незакрываемым окном без кнопки со странным алертбоксом:

Порядком доставляли и выскакивающие напостой поверх кликера чёрные окна командной строки батчей.  ::)
После перезагрузки кликера, которая длится около десяти секунд, можно сразу же тормознуть выполнение скрипта, зайти в редактор для ознакомления с обновившимся размером шрифта и сразу же снова запустить скрипт, теперь он сможет работать прямо в редакторе и реагировать тут на нажатие хоткеев. Ещё открытым остаётся вопрос, как интерпретировать полученные сведения из ветки data\config.ini\[hotkey], задним умом я понимаю, что это сумма нескольких 10- или 16-ричных кейкодов в каком-то порядке, но вот что как конкретно, я пока не догоняю. Надд поэксприментить буит.

Это наш ответ этимъ вашим шлемберлинам!)
« Last Edit: June 02, 2021, 12:04:30 AM by Cleoss »