Команда (скрипт) по умолчанию для открытия вкладок/файлов

Russian main discussion
Post Reply
  • Author
  • Message
Offline
Posts: 157
Joined: Thu Nov 26, 2015 8:03 pm
Location: Rostov-on-Don

Команда (скрипт) по умолчанию для открытия вкладок/файлов

Post by Eskander88 »

Доброго времени суток !
Есть в AkelPad настройка в реестре, которая позволяет по умолчанию запускать команду (следовательно и скрипт) при запуске программы и при её закрытии.

Настройка в HKEY_CURRENT_USER\Software\Akelsoft\AkelPad\Options
Соответственно параметр: CmdLineBegin, CmdLineEnd

Есть ли аналогичный способ для назначения команд (скриптов), которые будут запускаться при (пере)открытии (закрытии) новых вкладок в AkelPad, а не самой программы???

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

Eskander88
До некоторой степени. Можно использовать связку "HotKeys-plugin + Scripts-plugin".
Пишете скрипт с желаемыми действиями и навешиваете его на стандартное сочетание клавиш (перекрываете стандартное поведение).
Но этот способ не перекрывает ВСЕ лазейки. Например, вкладку можно закрыть по Ctrl+F4/Ctrl+W, а можно double-click по заголовку вкладки. Против такого HotKeys уже бессилен.

Offline
Posts: 157
Joined: Thu Nov 26, 2015 8:03 pm
Location: Rostov-on-Don

Post by Eskander88 »

opk44,
часто приходится работать с логами. Получается файл обновляется и отображается диалоговое окно "Файл изменился, переоткрыть файл?". То есть нет получается события в приложение, которое реагировало бы на изменение файла, вроде «onFileChange("script.js")» ?

Offline
Posts: 330
Joined: Mon Jun 03, 2019 2:33 am

Post by AZJIO »

Eskander88 wrote:отображается диалоговое окно "Файл изменился, переоткрыть файл?". То есть нет получается события в приложение, которое реагировало бы на изменение файла, вроде «onFileChange("script.js")» ?
AutoIt3 позволяет манипулировать окнами. Сделать цикл, который раз в секунду проверяет наличие окна и допустим закрывает его и что-то делает в активном окне. Хотя если 2 файла обновилось, а программа стала активной из свёрнутого состояния, то нет доступа к активному окну, пока не будут закрыты все окна с предложением обновить.

Вот пример слежения за файловой системой в папке/диске - FileSystemMonitor

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post 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.

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Ну или немного более лёгкий вариант: после открытия файла лога поставить галочку в меню Плагины - Просмотр лога - В реальном времени.
Post Reply