Активировать окно FileZilla при сохранении на FTP

Russian main discussion
Post Reply
  • Author
  • Message
Offline
Posts: 24
Joined: Sat Jul 30, 2016 9:39 am

Активировать окно FileZilla при сохранении на FTP

Post by Sticher78 »

Приветствую сокельпадчиков 8)

Вопрос следующий.

AkelPad стоит как редактор по умолчанию в настройках FileZilla для всяких html, php, xml-файлов.

После открытия файла, изменения и сохранении - нужно каждый раз переключаться на окно FileZilla, чтобы подтвердить сохранение на FTP-сервер.

А оно может быть в этот момент закрыто другими окнами.

В принципе - небольшие временные затраты и фигня-вопрос, всего-то навести мышку на окно в панели задач и активировать.

Но когда этим занимаешься постоянно - запаривает и, как говорится, секунды складываются в минуты, а те в часы.

Кто подскажет - как, при вышеуказанных действиях, активировать автоматически окно FileZilla?

Именно когда открываешь файл с FTP на редактирование и сохраняешь, и FileZilla запущена.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post 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);` )

Offline
Posts: 24
Joined: Sat Jul 30, 2016 9:39 am

Post 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")
Не работает :cry:
Отрабатывает только сохранение файла, окно FileZilla не активируется.
Last edited by Sticher78 on Thu Nov 03, 2016 11:12 am, edited 1 time in total.

Offline
Posts: 24
Joined: Sat Jul 30, 2016 9:39 am

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

Мб, его как-то прикрутить к сохранению?

Offline
Posts: 24
Joined: Sat Jul 30, 2016 9:39 am

Post by Sticher78 »

В общем, сам спросил - сам и ответил.

Добавил в начало скриптика вызов внутренней команды сохранения и получил, то что хотел:

Code: Select all

AkelPad.Command(4105); 

var WshShell;
var WshShell = new ActiveXObject("WScript.Shell");
WshShell.AppActivate ("FileZilla");
Скрипт обозвал, как мне надо и на кнопку на тулбаре повесил его вызов.

Instructor, я хз, почему не работает твой код, но спс за пинок в правильном направлении.

Глядишь - кому пригодится данный код.

Offline
Posts: 31
Joined: Fri Apr 17, 2009 5:47 pm
Location: Гдето под Питером

Post by Evgenyatam »

строку var wshSell; можно убрать.

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

Post by Eskander88 »

подскажите пожалуйста, какой инструкцией в скрипте можно проверить, что файл не изменялся?

скажем, если делается горячая клавиша на скрипт, и при нажатии сочетания нужно чтобы фокус не перебрасывался на окно другой программы в тех случаях, когда на вкладке файла не горит звёздочка (т.е файл не отличается от сохранённого)

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

Post by opk44 »

Eskander88
Анализируется не "звездочка" (в зависимости от установок ShowModify её может и не быть), а то, что вызывает её появление - AEM_GETMODIFY.
См. примеры использования в скриптах UndoAll.js, UndoAllNoScroll.js, undoRedoAll.js, winMergeTabs.js

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

Post 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("ЕСЛИ ФАЙЛ ПРЕЖНИЙ"); /*ИЛИ ИНОЙ КОД */ }

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

команда в js-скрипте, чтобы закрыть AkelPad

Post by Eskander88 »

подскажите, какую можно использовать инструкцию в js-скрипте AP, чтобы закрыть AkelPad со всеми вкладками. Пытаюсь сделать скрипт с опцией перезапуска или закрытия AP в зависимости от условия, вот застрял..

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

Post by opk44 »

Eskander88
1. для закрытия:

Code: Select all

AkelPad.Command(4109);
2. для перезапуска, посмотрите "restart.js" ((c) Infocatcher 2014). Но там используется сторонний софт:
// Dependencies:
// Sessions plugin
// NirCmd utility - http://www.nirsoft.net/utils/nircmd.html

Offline
Posts: 269
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Post by yozhic »

opk44 wrote:Но там используется сторонний софт:
Без стороннего софта у KDJ.

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

Post by Eskander88 »

Спасибо
Post Reply