Page 66 of 74

Posted: Thu Oct 08, 2015 3:14 pm
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

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

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

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

Posted: Thu Oct 08, 2015 8:34 pm
by KDJ
Instructor wrote:Scripts plugin v18.0
Now everything works well. Thank you very much.

Viva AkelPad!

Posted: Fri Oct 09, 2015 3:42 pm
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");

Posted: Fri Oct 09, 2015 3:57 pm
by Instructor
Изменено: мьютексы теперь не распостраняются за рамки процесса.

Changed: mutexes now not expands outside of the process.


Scripts plugin v18.1

Posted: Fri Oct 09, 2015 5:34 pm
by yozhic
Instructor wrote:С Scripts 18.1 и тестовой можно настроить следующий ярлык:
Вот это да! Инструктор, если бы у меня были дети, я бы Вас попросил стать их Крёстным :) Спасибо.

Posted: Fri Oct 09, 2015 7:46 pm
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.

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

Posted: Sun Oct 11, 2015 2:18 pm
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

Posted: Sun Oct 11, 2015 5:41 pm
by yozhic
Instructor
1) На XP выглядит так. И отдельно мелькание на 7.
2) Кнопкой с тулбара TC запускаю. Там тоже процент удваивается для передачи.

Posted: Sun Oct 11, 2015 5:45 pm
by yozhic
Забыл написать: мелькание воспроизводится (на 7 и 8.1) когда окно AkelPad открывается во весь экран.

Posted: Sun Oct 11, 2015 6:05 pm
by Instructor
yozhic
По первому видео - не воспроизводится. Похоже у вас не все копии AkelPad'а заменены на тестовую. Убедитесь, что файл test.txt открывает последняя тестовая, а также кнопка панели инструметов использует последнюю тестовую.

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

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