Page 74 of 74

Re: Scripts plugin

Posted: Sun May 04, 2025 7:14 pm
by Instructor
Исправлено: остановка при ошибке и метод WScript.Quit в Windows 11 24H2 (jscript9Legacy.dll).

Fixed: stopping on error and WScript.Quit method in Windows 11 24H2 (jscript9Legacy.dll).


Scripts plugin v19.2

Re: Scripts plugin

Posted: Thu Aug 21, 2025 7:47 am
by Instructor
Исправлено: обходное решение для jscript9Legacy.dll, который игнорирует одиночный AddRef для объекта IDispatch в методе oSys.RegisterCallback.

Fixed: workaround for jscript9Legacy.dll that ignore single AddRef for IDispatch object in oSys.RegisterCallback method.


Scripts plugin v19.3

Re: Scripts plugin

Posted: Thu Nov 20, 2025 10:43 am
by VladSh
Instructor

Скрипт чтения настроек скрипта

Code: Select all

var oSet = AkelPad.ScriptSettings();
oSet.Begin(WScript.ScriptBaseName, 0x1 /*POB_READ*/);
var value = oSet.Read("param", 3 /*PO_STRING*/, "defaultString");
AkelPad.MessageBox(AkelPad.GetMainWnd(), value, WScript.ScriptName, 0 /*MB_OK*/);
oSet.End();
даёт ошибку в случае отсутствия ini-файла для скрипта (проверял на Win11):
---------------------------
Scripts plugin
---------------------------
Script: C:\Portable\AkelPad\AkelFiles\Plugs\Scripts\test.js
Line: 3
Symbol: 1
Error: Недостаточно памяти
Code: 800A0007
Source: Ошибка выполнения JavaScript
---------------------------
Да Нет
---------------------------
Если добавить пустой файл, то работает норм.

Думаю, нужно обработчик добавить на отсутствие файла, и возвращать значение по умолчанию в случае его отсутствия.

Re: Scripts plugin

Posted: Thu Nov 20, 2025 7:00 pm
by Infocatcher
VladSh wrote: Thu Nov 20, 2025 10:43 am Скрипт чтения настроек скрипта

Code: Select all

var oSet = AkelPad.ScriptSettings();
oSet.Begin(WScript.ScriptBaseName, 0x1 /*POB_READ*/);
var value = oSet.Read("param", 3 /*PO_STRING*/, "defaultString");
AkelPad.MessageBox(AkelPad.GetMainWnd(), value, WScript.ScriptName, 0 /*MB_OK*/);
oSet.End();
даёт ошибку в случае отсутствия ini-файла для скрипта
Так, вроде, так и задумано, в примере делается проверка возвращаемого oSet.Begin() значения:

Code: Select all

Пример (прочитать настройки скрипта):
  var oSet=AkelPad.ScriptSettings();

  if (oSet.Begin("", 0x1 /*POB_READ*/))
  {
    pString=oSet.Read("String", 3 /*PO_STRING*/);
    bMultiline=oSet.Read("Multiline", 1 /*PO_DWORD*/);
    oSet.End();
  }

Re: Scripts plugin

Posted: Thu Nov 20, 2025 7:48 pm
by VladSh
Infocatcher
Ясно.

Re: Scripts plugin

Posted: Thu Nov 20, 2025 7:53 pm
by VladSh
Instructor

El Sanchez написал:
ошибка в коде AkelPad здесь.
При nDataSize = 0, второй параметр SysAllocStringLen будет равен -1, но у функции тип этого параметра беззнаковый, и (UINT)-1 = 0xFFFFFFFF = 4294967295 байт.

Re: Scripts plugin

Posted: Sun Nov 23, 2025 6:48 pm
by Instructor
VladSh
См. Scripts v19.5

Re: Scripts plugin

Posted: Sun Nov 23, 2025 6:48 pm
by Instructor
Исправлено: AkelPad.ScriptSettings().Read ошибка выделения памяти при попытке чтения пустого дескриптора.

Fixed: AkelPad.ScriptSettings().Read memory allocation error when trying to read empty handle.


Scripts plugin v19.5