Page 1 of 1
Команда (скрипт) по умолчанию для открытия вкладок/файлов
Posted: Wed May 20, 2020 4:22 am
by Eskander88
Доброго времени суток !
Есть в AkelPad настройка в реестре, которая позволяет по умолчанию запускать команду (следовательно и скрипт) при запуске программы и при её закрытии.
Настройка в HKEY_CURRENT_USER\Software\Akelsoft\AkelPad\Options
Соответственно параметр: CmdLineBegin, CmdLineEnd
Есть ли аналогичный способ для назначения команд (скриптов), которые будут запускаться при (пере)открытии (закрытии) новых вкладок в AkelPad, а не самой программы???
Posted: Wed May 20, 2020 7:50 am
by opk44
Eskander88
До некоторой степени. Можно использовать связку "HotKeys-plugin + Scripts-plugin".
Пишете скрипт с желаемыми действиями и навешиваете его на стандартное сочетание клавиш (перекрываете стандартное поведение).
Но этот способ не перекрывает ВСЕ лазейки. Например, вкладку можно закрыть по Ctrl+F4/Ctrl+W, а можно double-click по заголовку вкладки. Против такого HotKeys уже бессилен.
Posted: Thu May 21, 2020 5:50 pm
by Eskander88
opk44,
часто приходится работать с логами. Получается файл обновляется и отображается диалоговое окно "Файл изменился, переоткрыть файл?". То есть нет получается события в приложение, которое реагировало бы на изменение файла, вроде «onFileChange("script.js")» ?
Posted: Mon May 25, 2020 5:18 pm
by AZJIO
Eskander88 wrote:отображается диалоговое окно "Файл изменился, переоткрыть файл?". То есть нет получается события в приложение, которое реагировало бы на изменение файла, вроде «onFileChange("script.js")» ?
AutoIt3 позволяет манипулировать окнами. Сделать цикл, который раз в секунду проверяет наличие окна и допустим закрывает его и что-то делает в активном окне. Хотя если 2 файла обновилось, а программа стала активной из свёрнутого состояния, то нет доступа к активному окну, пока не будут закрыты все окна с предложением обновить.
Вот пример слежения за файловой системой в папке/диске -
FileSystemMonitor
Posted: Tue May 26, 2020 12:21 pm
by DV
А почему никто не предлагает написать для этих целей резидентный (работающий в фоне) скрипт, использующий что-то вроде
https://stackoverflow.com/questions/137 ... ith-winapi ?
В качестве примера резидентного скрипта можно взять любой из скриптов, в котором вызывается AkelPad.WindowSubClass (например, DrawLine.js).
Пример для SHChangeNotifyRegister можно погуглить. Например, вот:
http://codewee.com/view.php?idx=20 .
Некоторую головную боль вызовет необходимость создавать в скрипте структуры, необходимые для вызова SHChangeNotifyRegister и иже с ним. Тут, опять же, другие скрипты в помощь. Такие, которые используют AkelPad.MemAlloc и AkelPad.MemFree.
Posted: Tue May 26, 2020 12:36 pm
by DV
Ну или немного более лёгкий вариант: после открытия файла лога поставить галочку в меню Плагины - Просмотр лога - В реальном времени.