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 »

Добавлено: флаг ULT_LOCKSENDMESSAGE в метод AkelPad.ScriptNoMutex - вызовы AkelPad.SendMessage, AkelPad.Command блокируют поток скрипта (по умолчанию).
Добавлено: флаг ULT_UNLOCKSENDMESSAGE в метод AkelPad.ScriptNoMutex - вызовы AkelPad.SendMessage, AkelPad.Command не блокируют поток скрипта (медленнее).
Добавлено: флаг SH_GETLOCKSENDMESSAGE в метод AkelPad.ScriptHandle - блокировка потока скрипта вызовами AkelPad.SendMessage, AkelPad.Command.
Добавлено: флаг SH_GETEXECTYPE в метод AkelPad.ScriptHandle - получить код внешнего вызова скрипта.

Added: ULT_LOCKSENDMESSAGE flag in AkelPad.ScriptNoMutex method - AkelPad.SendMessage, AkelPad.Command called with script thread lock (by default).
Added: ULT_UNLOCKSENDMESSAGE flag in AkelPad.ScriptNoMutex method - AkelPad.SendMessage, AkelPad.Command called without script thread lock (slower).
Added: SH_GETLOCKSENDMESSAGE flag in AkelPad.ScriptHandle method - AkelPad.SendMessage, AkelPad.Command locks script thread.
Added: SH_GETEXECTYPE flag in AkelPad.ScriptHandle method - retrieve code of the external script call.


Scripts plugin v18.5
Last edited by Instructor on Sat Jun 04, 2016 8:26 am, edited 1 time in total.

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

Post by KDJ »

Instructor wrote:
KDJ wrote:When I try to close any modified document (from the script), then displays message box "Document was modified. Do you want to save it?" and AkelPad hangs. On Win-XP sometimes, and on Win-7 always.
With Scripts v18.5. CloseDocument.js:

Code: Select all

    if (LoWord(wParam) == 1000)
    {
      AkelPad.ScriptNoMutex(0x20 /*ULT_UNLOCKSENDMESSAGE*/);
      AkelPad.Command(4318 /*IDM_WINDOW_FRAMECLOSE*/);
      AkelPad.ScriptNoMutex(0x10 /*ULT_LOCKSENDMESSAGE*/);
    }
Thank you very much. In CloseDocument.js works properly.
Unfortunately in AkelPadManualSettings.js does not work. I don't know what is the cause.

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

Post by Instructor »

KDJ

Code: Select all

function SendMessage(hWnd, uMsg, wParam, lParam)
{
  //return oSys.Call("User32::SendMessageW", hWnd, uMsg, wParam, lParam);
  return AkelPad.SendMessage(hWnd, uMsg, wParam, lParam);
}
Scripts-Eng.txt wrote:ULT_UNLOCKSENDMESSAGE AkelPad.SendMessage, AkelPad.Command called without script thread lock (slower).

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

Post by KDJ »

Instructor
I tried different ways, but I hadn't thought of that. Thank you again.

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

Post by KDJ »

Instructor
In Scripts-Eng.txt I wanted to find "-100" and not found (using "Find" dialog).
Why not found, when I see that this string exists?
Because, the minus symbol is written as non-ASCII character ("\u2013").
These characters look identical (at monospace font):
"–" ("\u2013"),
"-" ("\u002D").
Can you correct it?

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

Post by Instructor »

KDJ
Done.

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

Post by Skif_off »

Пытаюсь запустить SessionMenu.js, строка меню:

Code: Select all

-"Показать меню с файлами сессии(й)" Call("Scripts::Main", 1, "SessionMenu.js", `-p=1, -b="!", -sm=2`)
Получаю ошибку:

Code: Select all

Скрипт:	*\AkelFiles\Plugs\Scripts\SessionMenu.js
Строка:	53
Символ:	1
Ошибка:	Синтаксическая ошибка
Код:	800A03EA
Источник:	Ошибка выполнения Microsoft JScript
Если в строке 53 взять значение по умолчанию в кавычки - не вылетает. Получается, проблема с типом данных (строка vs. число), но только с "-p", а вот "-sm" получается без ошибок.

Баг плагина?

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

Post by Instructor »

Skif_off
-"Показать меню с файлами сессии(й)" Call("Scripts::Main", 1, "SessionMenu.js", `-p=1, -b="!", -sm=2`)

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

Post by Skif_off »

Instructor
Спасибо, теперь пытаюсь понять, о чём я думал, когда поставил запятые, - и не могу :)))

Offline
Posts: 2
Joined: Fri Aug 26, 2016 10:43 am

Post by Powered »

Непонятная ошибка при попытке в скрипте создать объект AkelPad.document. В скрипте всего одна эта строчка. Scripts.dll зарегистрирована. В чём проблема?

Code: Select all

var AkelPad = new ActiveXObject("AkelPad.document");

Code: Select all

---------------------------
Scripts плагин
---------------------------
Скрипт:	D:\PROG\TOOLS\AkelPad\AkelFiles\Plugs\Scripts\MCode.js
Строка:	1
Символ:	1
Ошибка:	
Код:	80010105
Источник:	
AkelPad 4.9.8 x86. ОС Win10 x64.

Offline
Posts: 2
Joined: Fri Aug 26, 2016 10:43 am

Post by Powered »

Отбой, это я в двух соснах запутался. Не сообразил, что объект уже изначально есть в скриптах, выполняемых из AkelPad'a.

r0n
Offline
Posts: 23
Joined: Sat Jun 14, 2014 3:56 am

List of messages send by AkelPad (EOD_ / AKDN_ / ...)

Post by r0n »

Is there a list of of messages which can be used when scripting in akelpad?

Examples:
#define EOD_SUCCESS 0 //Success.
#define EOD_ADT_OPEN EDT_OPEN //See EDT_OPEN.
...
...
#define AKDN_MAIN_ONSTART (WM_USER + 1) //0x401
#define AKDN_MAIN_ONSTART_PRESHOW (WM_USER + 2) //0x402

I got the above from:
https://github.com/Fr0sT-Brutal/AkelPad ... /AkelDLL.h

But I do not know if they are still valid (it's from 2014)?
At this moment I am using which seem to work:

#define AKDN_FRAME_ACTIVATE (WM_USER + 22) //0x416
#define AKDN_OPENDOCUMENT_FINISH (WM_USER + 54) //0x436
#define AKDN_SAVEDOCUMENT_FINISH (WM_USER + 56) //0x438
#define AKDN_EDIT_ONCLOSE (WM_USER + 13) //0x40D
#define AKDN_EDIT_ONFINISH (WM_USER + 12) //0x40C

I also looked in under "Scripts" in the plugin help:
Scipts >> Scripting Akelpad >> Windows Message >> SendMessage
At the top of that page ('SendMessage'), there is a blue link 'Windows® message' which displays a lot of windows messages.

I am not a C/C++ programmer but I managed to use some messages to trigger code in a dialog which I created in another application.

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

Post by Skif_off »

r0n
Sources (current 4.9.8 ): AkelPad-4.9.8-src.zip/AkelFiles/Plugs/AkelDLL/AkelDLL.h
Or in SVN-repository.
Last edited by Skif_off on Fri Nov 04, 2016 5:13 pm, edited 1 time in total.

r0n
Offline
Posts: 23
Joined: Sat Jun 14, 2014 3:56 am

Post by r0n »

@Skif_off

Thank you!

Offline
Posts: 176
Joined: Sat Dec 24, 2011 4:05 pm

Post by F. Phoenix »

Можно сделать как-то чтоб отладка скриптов работала только для вызова скриптов из диалога плагина, но не AkelPad.Call(...)?
Или хотя бы отдельную кнопку что ли сделайте для разовой отладки в альтернативу флажку. Очень неудобно.
Post Reply