Scripts plugin

Discuss and announce AkelPad plugins
  • Author
  • Message
Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Изменено: убран доступ к объекту AkelPad.WScript из ActiveX.
Добавлено: методы ConnectObject и DisconnectObject теперь также присутствуют в объекте AkelPad.
Добавлено: AkelPad.ActiveXThis - передать корневой IDispatch плагину. Требуется некоторым методам для работы в режиме ActiveX.

Changed: removed access to AkelPad.WScript object from ActiveX.
Added: methods ConnectObject and DisconnectObject now also exist in AkelPad object.
Added: AkelPad.ActiveXThis - send root IDispatch to plugin. Required for some methods to work in ActiveX mode.


Scripts plugin v18.0

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

Post by yozhic »

Instructor
Этот bat-сценарий только временно регистрирует, а при пониженных правах он не срабатывает – Scripts.dll не регистрируется. Практическая польза видилась в том, что когда человек привыкает к определённому набору инструментов и последовательности действий, то лучше чтоб они были всегда доступны. Поэтому я, к примеру, не настраиваю PDFtk-G.js, чтобы он запускался без AkelPad (хотя это было бы удобней, т.к. скрипт этот независим), ведь на машине с пониженными правами эта настройка не сработает (а приходится работать на разных машинах – ношу с собой свой настроенный AkelPad и TC на флешке). wdx – это, конечно, костыль... Впрочем, Вы правы, это я просто засуетился – лишние движения.

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

yozhic
А если писать в HKCU\SOFTWARE\Classes? Или вообще писать всё, чтобы обойтись без regsvr32?
WDX - это как-то перебор, зато AutoRun может загружать шрифты, например, возможно, сможет и dll загрузить, для дочерних процессов, нужно смотреть документацию.

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

Post by yozhic »

Skif_off
Я читал и пробовал – в dll должна быть соответствуюшая запись, чтобы он её загрузил. А вот с HKCU действительно надо будет попробовать.
WDX - это как-то перебор
Пока думал, казалось приемлемо. А как написал – теперь и сам вижу, что перемудрил :?

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Instructor wrote:Scripts plugin v18.0
Now everything works well. Thank you very much.

Viva AkelPad!

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

Post by Instructor »

yozhic wrote:(хотя это было бы удобней, т.к. скрипт этот независим)
С Scripts 18.1 и тестовой можно настроить следующий ярлык:

Code: Select all

AkelPad.exe /NewInstance /MainClass("MyAkelPad4(%%d)") /Show(0) /Call("Scripts::Main", 2, "PDFtk-G.js") /Quit
KDJ
PDFtk-G.js

Problem: blinking main window while closing dialog called with code above.

Code: Select all

//if (hMainWnd)
//{
//  if (! oSys.Call("User32::IsWindowVisible", hMainWnd))
//    oSys.Call("User32::ShowWindow", hMainWnd, 8 /*SW_SHOWNA*/);
//  if (oSys.Call("User32::IsIconic", hMainWnd))
//    oSys.Call("User32::ShowWindow", hMainWnd, 9 /*SW_RESTORE*/);
//
//  oSys.Call("User32::SetForegroundWindow", hMainWnd);
//}


Problem: imposible to run more than one dialog (for different process) with code above. By design? If yes, maybe add new argument?

Code: Select all

//var sClass   = "AkelPad::Scripts::" + WScript.ScriptName + "::" + hInstDLL;
var sClass   = "AkelPad::Scripts::" + WScript.ScriptName + "::" + oSys.Call("kernel32::GetCurrentProcessId");

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

Post by Instructor »

Изменено: мьютексы теперь не распостраняются за рамки процесса.

Changed: mutexes now not expands outside of the process.


Scripts plugin v18.1

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

Post by yozhic »

Instructor wrote:С Scripts 18.1 и тестовой можно настроить следующий ярлык:
Вот это да! Инструктор, если бы у меня были дети, я бы Вас попросил стать их Крёстным :) Спасибо.

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Instructor
Done: PDFtk-G.js.
Added: parameter that allow to run the script in multiple instances of AkelPad.exe or wscript.exe.
Changed: now AkelPad window is not set to foreground after closing the dialog.

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

Post by yozhic »

Instructor
С новым способом запуска:
1) При запуске окно AkelPad вспыхивает во весь экран и затем скрывается. Особенно заметно на Win 8.1, чуть менее, но тоже отчётливо на 7. На XP не заметно только на мощной машине, на одном стареньком ноуте бросается в глаза.
2) Если в момент запуска был открыт AkelPad, то NewInstance создаётся только в режиме SDI. В режимах MDI/PMDI открытое прежде окно срывается и остаётся скрытым после выхода из скрипта. Приходится потом прибивать процесс AkelPad вручную.

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

Post by Instructor »

KDJ
Work, thanks.

yozhic
Дело за малым :) шучу

1) Не воспроизводится на WinXP.
2) Строку запуска скопировал из пакетного файла. Для ярлыка надо не %%d, а %d.

Code: Select all

AkelPad.exe /NewInstance /MainClass("MyAkelPad4(%d)") /Show(0) /Call("Scripts::Main", 2, "PDFtk-G.js", "1") /Quit

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

Post by yozhic »

Instructor
1) На XP выглядит так. И отдельно мелькание на 7.
2) Кнопкой с тулбара TC запускаю. Там тоже процент удваивается для передачи.

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

Post by yozhic »

Забыл написать: мелькание воспроизводится (на 7 и 8.1) когда окно AkelPad открывается во весь экран.

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

Post by Instructor »

yozhic
По первому видео - не воспроизводится. Похоже у вас не все копии AkelPad'а заменены на тестовую. Убедитесь, что файл test.txt открывает последняя тестовая, а также кнопка панели инструметов использует последнюю тестовую.

По второму - проверю, когда будет возможность.

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

Post by yozhic »

Instructor
Только что перекачал. Всё по прежнему – как на видео.
...
Ага! Удалил все плагины и настройки, запустил только тестовую с только Scripts.dll – всё отлично отработало. Сейчас буду смотреть что именно влияет...
Last edited by yozhic on Sun Oct 11, 2015 6:43 pm, edited 1 time in total.
Post Reply