Page 1 of 1
Активировать окно FileZilla при сохранении на FTP
Posted: Tue Nov 01, 2016 6:01 pm
by Sticher78
Приветствую сокельпадчиков
Вопрос следующий.
AkelPad стоит как редактор по умолчанию в настройках FileZilla для всяких html, php, xml-файлов.
После открытия файла, изменения и сохранении - нужно каждый раз переключаться на окно FileZilla, чтобы подтвердить сохранение на FTP-сервер.
А оно может быть в этот момент закрыто другими окнами.
В принципе - небольшие временные затраты и фигня-вопрос, всего-то навести мышку на окно в панели задач и активировать.
Но когда этим занимаешься постоянно - запаривает и, как говорится, секунды складываются в минуты, а те в часы.
Кто подскажет - как, при вышеуказанных действиях, активировать автоматически окно FileZilla?
Именно когда открываешь файл с FTP на редактирование и сохраняешь, и FileZilla запущена.
Posted: Tue Nov 01, 2016 6:26 pm
by Instructor
Код вызова для Hotkeys, ContextMenu или Toolbar плагина:
Code: Select all
Call("Scripts::Main", 1, "EvalCmd.js", `AkelPad.Command(4105 /*IDM_FILE_SAVE*/); hWnd=AkelPad.SystemFunction().Call("user32::FindWindow" + _TCHAR, "wxWindowClassNR", "FileZilla"); AkelPad.SystemFunction().Call("user32::SetForegroundWindow", hWnd);` )
Posted: Tue Nov 01, 2016 6:39 pm
by Sticher78
Вставил в меню вкладок.
Win7 x64, Akelpad x32 v.4.9.8, FileZilla x64 v.3.22.1, EvalCmd версии 1.2, все плагины присутствуют.
Вставил вот так :
Code: Select all
"Save on FTP" Call("Scripts::Main", 1, "EvalCmd.js", `AkelPad.Command(4105 /*IDM_FILE_SAVE*/); hWnd=AkelPad.SystemFunction().Call("user32::FindWindow" + _TCHAR, "wxWindowClassNR", "FileZilla"); AkelPad.SystemFunction().Call("user32::SetForegroundWindow", hWnd);` ) Icon("%a\AkelFiles\Icons\FZ.ico")
Не работает

Отрабатывает только сохранение файла, окно FileZilla не активируется.
Posted: Thu Nov 03, 2016 10:51 am
by Sticher78
Не срабатывает, мб, потому что у FileZilla в этот момент вылазит диалоговое окно сохранения?
Хотя скриптик из 3 строк вызывает его окно:
Code: Select all
var WshShell;
var WshShell = new ActiveXObject("WScript.Shell");
WshShell.AppActivate ("FileZilla");
я его обозвал ActivateFZ.js и положил в "%a\AkelFiles\Plugs\Scripts\ActivateFZ.js".
Мб, его как-то прикрутить к сохранению?
Posted: Thu Nov 03, 2016 10:29 pm
by Sticher78
В общем, сам спросил - сам и ответил.
Добавил в начало скриптика вызов внутренней команды сохранения и получил, то что хотел:
Code: Select all
AkelPad.Command(4105);
var WshShell;
var WshShell = new ActiveXObject("WScript.Shell");
WshShell.AppActivate ("FileZilla");
Скрипт обозвал, как мне надо и на кнопку на тулбаре повесил его вызов.
Instructor, я хз, почему не работает твой код, но спс за пинок в правильном направлении.
Глядишь - кому пригодится данный код.
Posted: Mon Dec 25, 2017 8:12 pm
by Evgenyatam
строку var wshSell; можно убрать.
Posted: Thu Aug 09, 2018 8:18 am
by Eskander88
подскажите пожалуйста, какой инструкцией в скрипте можно проверить, что файл не изменялся?
скажем, если делается горячая клавиша на скрипт, и при нажатии сочетания нужно чтобы фокус не перебрасывался на окно другой программы в тех случаях, когда на вкладке файла не горит звёздочка (т.е файл не отличается от сохранённого)
Posted: Thu Aug 09, 2018 3:33 pm
by opk44
Eskander88
Анализируется не "звездочка" (в зависимости от установок ShowModify её может и не быть), а то, что вызывает её появление - AEM_GETMODIFY.
См. примеры использования в скриптах UndoAll.js, UndoAllNoScroll.js, undoRedoAll.js, winMergeTabs.js
Posted: Fri Aug 10, 2018 5:28 am
by Eskander88
Спасибо! Из
UndoAll.js собрал рабочий фрагмент
Code: Select all
var hWndEdit=AkelPad.GetEditWnd();
if (AkelPad.SendMessage(hWndEdit, 3086 /*AEM_GETMODIFY*/, 0, 0))
{WScript.Echo("ЕСЛИ ФАЙЛ ИЗМЕНЁН"); /*ИЛИ ИНОЙ КОД */ }
else {WScript.Echo("ЕСЛИ ФАЙЛ ПРЕЖНИЙ"); /*ИЛИ ИНОЙ КОД */ }
команда в js-скрипте, чтобы закрыть AkelPad
Posted: Sun Mar 31, 2019 9:17 am
by Eskander88
подскажите, какую можно использовать инструкцию в js-скрипте AP, чтобы закрыть AkelPad со всеми вкладками. Пытаюсь сделать скрипт с опцией перезапуска или закрытия AP в зависимости от условия, вот застрял..
Posted: Sun Mar 31, 2019 2:56 pm
by opk44
Eskander88
1. для закрытия:
2. для перезапуска, посмотрите
"restart.js" ((c) Infocatcher 2014). Но там используется сторонний софт:
Posted: Sun Mar 31, 2019 5:27 pm
by yozhic
opk44 wrote:Но там используется сторонний софт:
Без стороннего софта
у KDJ.
Posted: Sat Apr 27, 2019 2:20 pm
by Eskander88
Спасибо