Scripts discussion (3)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 202
Joined: Sat Mar 28, 2015 2:36 pm
Location: Russia

Post by Kley »

Упс!
С AkelPad.ScriptNoMutex(), после объявления переменных
Имелось ввиду: добавление ScriptNoMutex() после объявления переменных в TabSwitch.js.
Так тоже падает:

Code: Select all

SET(128, If(`Call("Scripts::Main", 4, "EvalCmd.js", 'If (AkelPad.GetEditFile(0)) AkelPad.ScriptExitCode(1);')`, 0x0, 0x2))
  "" Command(4101)
UNSET(128)
Попробую изложить по-конкретней:
1. Запускаю:

Code: Select all

"Список вкладок" Call("Scripts::Main", 1, "TabSwitch.js", `-Next=-1 -CtrlTab=false -RightLeft=true -MinTabs=1 -WindowMaxHeight=600`)
2. Щелкаю по "&Файл":

Code: Select all

"&Файл" Index(-1)
{
  ...
  SET(128, If(`Call("Scripts::Main", 4, "EvalCmd.js", 'if (AkelPad.GetEditFile(0)) AkelPad.ScriptExitCode(1);')`, 0x0, 0x2))
    "" Command(4101)
  UNSET(128)
  ...
  SEPARATOR1
  "В&ыход	Esc" Command(4109)
}
Win7 32, 64, XP (VirtualBox)

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

Post by Instructor »

Kley
Теперь понятно. TabSwitch.js 4.3.

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

Post by Skif_off »

VladSh
Возможно ли добавить в RegJump.js включение/выключение редиректа WoW64?
Вроде две функции только вызвать:

Code: Select all

kernel32::Wow64DisableWow64FsRedirection
WshShell.Run(procRegEdit, 1, false);
kernel32::Wow64RevertWow64FsRedirection
На х64 ОС неудобно вызывать скрипт в х86 версии AkelPad.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Skif_off
Disables file system redirection for the calling thread.
Думаете всё так просто?

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

Post by Skif_off »

FeyFre
Всё ещё проще: меняем местами строки 39 и 40, переменную procRegEdit задаём так:

Code: Select all

var procRegEdit = WshShell.ExpandEnvironmentStrings("%WinDir%") + "\\regedit.exe";

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

Post by Skif_off »

Infocatcher
Заметил случайно Add basic support for quoted-printable, но в коллекцию пока не попал - уже можно пользоваться?
через за..., т.е. буфер обмена: JScript + AutoIt (из-за возможных проблем с кириллицей - с парой MsgBox, чтобы подтверждать правильное декодирование кириллицы из KOI-8R или UTF-8 ), с удовольствием бы выпилил :)


Такой момент ещё: когда разбирался, нашёл инфу, что в Quoted-Printable длина строки не должна превышать 76 символов (в e-mail по крайней мере), поэтому софт режет, вставляя "=" в конце строки,

- текст резался в массив, в качестве разделителя - перенос строк;
- ячейки массива объединялись в одну строку, в качестве разделителя "|";
- замена "=|" на "";
- замена "|" на символ переноса строки (в начале скрипта определяется, что используется - \r, \n или \r\n).
Думаю, можно проще, но тогда казалось, что так надёжнее ведь разрывать можно и не по слову, а по пробелу - тогда не будет "=" в конце строки.
.
С converter.js подобной проблемы нет? К сожалению, пока не знаю, когда смогу проверить.

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

Post by Skif_off »

Instructor
Правильно ли понимаю, что скрипт UndoPos.js и команды 4199/4200 - одно и то же?

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

Post by KDJ »

SelectRangeText.js
Added: dialog position and "Offset" parameter are saved in ini file.
Changed:
- now dialog box is modeless,
- shortcut key Shift+Alt+Del(Ins) - center dialog box (instead of Shift+Alt+C).

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Skif_off wrote:Infocatcher
Заметил случайно Add basic support for quoted-printable, но в коллекцию пока не попал - уже можно пользоваться?
Да пока не особо, только через агрументы и только в одну кодировку пока.
Кодировку потом так можно:

Code: Select all

-"Переко&дировать в текущую кодировку" Call("Scripts::Main", 1, "converter.js", `-mode=2 -type="Charset" -codePage=-1 -dialog=false -saveOptions=0`)
Skif_off wrote:Такой момент ещё: когда разбирался, нашёл инфу, что в Quoted-Printable длина строки не должна превышать 76 символов (в e-mail по крайней мере), поэтому софт режет, вставляя "=" в конце строки
Там пока простейшая замена.
Так что если есть примеры закодированных текстов, хотелось бы их увидеть.

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Skif_off
А, в принципе, можно и https://github.com/mathiasbynens/quoted ... intable.js утянуть, наверное.

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

Post by Skif_off »

Infocatcher
Нашёл в RFC 2045:
The Quoted-Printable encoding REQUIRES that encoded lines be no more than 76 characters long. If longer lines are to be encoded with the Quoted-Printable encoding, "soft" line breaks.

Code: Select all

Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

=D0=A2=D0=B0=D0=BA=D0=BE=D0=B9 =D0=BC=D0=BE=D0=BC=D0=B5=D0=BD=D1=82 =D0=B5=
=D1=89=D1=91: =D0=BA=D0=BE=D0=B3=D0=B4=D0=B0 =D1=80=D0=B0=D0=B7=D0=B1=D0=B8=
=D1=80=D0=B0=D0=BB=D1=81=D1=8F, =D0=BD=D0=B0=D1=88=D1=91=D0=BB =D0=B8=D0=BD=
=D1=84=D1=83, =D1=87=D1=82=D0=BE =D0=B2 Quoted-Printable =D0=B4=D0=BB=D0=B8=
=D0=BD=D0=B0 =D1=81=D1=82=D1=80=D0=BE=D0=BA=D0=B8 =D0=BD=D0=B5 =D0=B4=D0=BE=
=D0=BB=D0=B6=D0=BD=D0=B0 =D0=BF=D1=80=D0=B5=D0=B2=D1=8B=D1=88=D0=B0=D1=82=
=D1=8C 76 =D1=81=D0=B8=D0=BC=D0=B2=D0=BE=D0=BB=D0=BE=D0=B2 (=D0=B2 e-mail =
=D0=BF=D0=BE =D0=BA=D1=80=D0=B0=D0=B9=D0=BD=D0=B5=D0=B9 =D0=BC=D0=B5=D1=80=
=D0=B5), =D0=BF=D0=BE=D1=8D=D1=82=D0=BE=D0=BC=D1=83 =D1=81=D0=BE=D1=84=D1=
=82 =D1=80=D0=B5=D0=B6=D0=B5=D1=82, =D0=B2=D1=81=D1=82=D0=B0=D0=B2=D0=BB=D1=
=8F=D1=8F "=3D" =D0=B2 =D0=BA=D0=BE=D0=BD=D1=86=D0=B5 =D1=81=D1=82=D1=80=D0=
=BE=D0=BA=D0=B8, =D0=BF=D1=80=D0=B8=D1=88=D0=BB=D0=BE=D1=81=D1=8C =D0=B7=D0=
=B0=D0=BC=D0=BE=D1=80=D0=BE=D1=87=D0=B8=D1=82=D1=8C=D1=81=D1=8F, =D1=87=D1=
=82=D0=BE=D0=B1=D1=8B =D1=81=D0=BB=D0=BE=D0=B2=D0=B0 =D0=BD=D0=B5 =D1=80=D0=
=B0=D0=B7=D1=80=D1=8B=D0=B2=D0=B0=D0=BB=D0=BE =D0=B8 =D1=81=D0=BE=D1=85=D1=
=80=D0=B0=D0=BD=D1=8F=D0=BB=D0=B0=D1=81=D1=8C =D1=80=D0=B0=D0=B7=D0=B1=D0=
=B8=D0=B2=D0=BA=D0=B0 =D0=BD=D0=B0 =D1=81=D1=82=D1=80=D0=BE=D0=BA=D0=B8:

- =D1=82=D0=B5=D0=BA=D1=81=D1=82 =D1=80=D0=B5=D0=B7=D0=B0=D0=BB=D1=81=D1=8F=
 =D0=B2 =D0=BC=D0=B0=D1=81=D1=81=D0=B8=D0=B2, =D0=B2 =D0=BA=D0=B0=D1=87=D0=
=B5=D1=81=D1=82=D0=B2=D0=B5 =D1=80=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=D0=B8=D1=
=82=D0=B5=D0=BB=D1=8F - =D0=BF=D0=B5=D1=80=D0=B5=D0=BD=D0=BE=D1=81 =D1=81=
=D1=82=D1=80=D0=BE=D0=BA;
- =D1=8F=D1=87=D0=B5=D0=B9=D0=BA=D0=B8 =D0=BC=D0=B0=D1=81=D1=81=D0=B8=D0=B2=
=D0=B0 =D0=BE=D0=B1=D1=8A=D0=B5=D0=B4=D0=B8=D0=BD=D1=8F=D0=BB=D0=B8=D1=81=
=D1=8C =D0=B2 =D0=BE=D0=B4=D0=BD=D1=83 =D1=81=D1=82=D1=80=D0=BE=D0=BA=D1=83=
, =D0=B2 =D0=BA=D0=B0=D1=87=D0=B5=D1=81=D1=82=D0=B2=D0=B5 =D1=80=D0=B0=D0=
=B7=D0=B4=D0=B5=D0=BB=D0=B8=D1=82=D0=B5=D0=BB=D1=8F "|";
- =D0=B7=D0=B0=D0=BC=D0=B5=D0=BD=D0=B0 "=3D|" =D0=BD=D0=B0 "";
- =D0=B7=D0=B0=D0=BC=D0=B5=D0=BD=D0=B0 "|" =D0=BD=D0=B0 =D1=81=D0=B8=D0=BC=
=D0=B2=D0=BE=D0=BB =D0=BF=D0=B5=D1=80=D0=B5=D0=BD=D0=BE=D1=81=D0=B0 =D1=81=
=D1=82=D1=80=D0=BE=D0=BA=D0=B8 (=D0=B2 =D0=BD=D0=B0=D1=87=D0=B0=D0=BB=D0=B5=
 =D1=81=D0=BA=D1=80=D0=B8=D0=BF=D1=82=D0=B0 =D0=BE=D0=BF=D1=80=D0=B5=D0=B4=
=D0=B5=D0=BB=D1=8F=D0=B5=D1=82=D1=81=D1=8F, =D1=87=D1=82=D0=BE =D0=B8=D1=81=
=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D1=83=D0=B5=D1=82=D1=81=D1=8F - \r, \n =D0=
=B8=D0=BB=D0=B8 \r\n).
=D0=94=D1=83=D0=BC=D0=B0=D1=8E, =D0=BC=D0=BE=D0=B6=D0=BD=D0=BE =D0=BF=D1=80=
=D0=BE=D1=89=D0=B5, =D0=BD=D0=BE =D1=82=D0=BE=D0=B3=D0=B4=D0=B0 =D0=BA=D0=
=B0=D0=B7=D0=B0=D0=BB=D0=BE=D1=81=D1=8C, =D1=87=D1=82=D0=BE =D1=82=D0=B0=D0=
=BA =D0=BD=D0=B0=D0=B4=D1=91=D0=B6=D0=BD=D0=B5=D0=B5 =D0=B2=D0=B5=D0=B4=D1=
=8C =D1=80=D0=B0=D0=B7=D1=80=D1=8B=D0=B2=D0=B0=D1=82=D1=8C =D0=BC=D0=BE=D0=
=B6=D0=BD=D0=BE =D0=B8 =D0=BD=D0=B5 =D0=BF=D0=BE =D1=81=D0=BB=D0=BE=D0=B2=
=D1=83, =D0=B0 =D0=BF=D0=BE =D0=BF=D1=80=D0=BE=D0=B1=D0=B5=D0=BB=D1=83 - =
=D1=82=D0=BE=D0=B3=D0=B4=D0=B0 =D0=BD=D0=B5 =D0=B1=D1=83=D0=B4=D0=B5=D1=82 =
"=3D" =D0=B2 =D0=BA=D0=BE=D0=BD=D1=86=D0=B5 =D1=81=D1=82=D1=80=D0=BE=D0=BA=
=D0=B8.

=D0=A1 converter.js =D0=BF=D0=BE=D0=B4=D0=BE=D0=B1=D0=BD=D0=BE=D0=B9 =D0=BF=
=D1=80=D0=BE=D0=B1=D0=BB=D0=B5=D0=BC=D1=8B =D0=BD=D0=B5=D1=82? =D0=9A =D1=
=81=D0=BE=D0=B6=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8=D1=8E, =D0=BF=D0=BE=D0=BA=D0=
=B0 =D0=BD=D0=B5 =D0=B7=D0=BD=D0=B0=D1=8E, =D0=BA=D0=BE=D0=B3=D0=B4=D0=B0 =
=D1=81=D0=BC=D0=BE=D0=B3=D1=83 =D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=B8=
=D1=82=D1=8C.



http://rghost.ru/8kbtR2PPk , скрипт AutoIt с комментариями, если что, AutoIt3.exe можно взять из дистрибутива. По сути методом проб и ошибок, на реальных файлах, с чем сам столкнулся - UTF-8, KOI-8R, iso-8859-5, CP1251.
Будете пробовать - в диалогах жмите "Нет", чтобы всё увидеть, сделать полностью без участия глаз пользователя не получилось. Только аккуратнее, пожалуйста: никак не дойдут руки дописать предварительное сохранение уже существующего в буфере обмена :)

Infocatcher wrote:А, в принципе, можно и https://github.com/mathiasbynens/quoted ... intable.js утянуть, наверное.
Кажется, видел, но не с моими знаниями разбираться :)

Запустил converter.js с гитхаба с параметрами

Code: Select all

-mode=2 -type="QuotedPrintable" -dialog=false -saveOptions=0
- ошибка.

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

Post by Skif_off »

KDJ
SelectRangeText.js

Code: Select all

    case 1049: //Russian
      sTxtCaption = "Диапазон выделения";
      sTxtCoordin = "Координаты";
      sTxtLine    = "Строка";
      sTxtColumn  = "Колонка";
      sTxtBegin   = "Начало";
      sTxtEnd     = "Конец";
      sTxtCaret   = "Каретка";
      sTxtOffset  = "&Смещение";
      sTxtColSel  = "&Колонка";
      sTxtCarPos  = "Позиция каретки";
      sTxtCarPos0 = "L.верх";
      sTxtCarPos1 = "R.верх";
      sTxtCarPos2 = "R.низ";
      sTxtCarPos3 = "L.низ";
      sTxtApply   = "Применить";
      sTxtClose   = "Закрыть";
      break;
stops with error code 800401F2 (line: 105, symbol: 1).
Win7x64, AkelPad 4.9.5 test.

Add:
It's passed after reboot OS.
Last edited by Skif_off on Fri Aug 28, 2015 9:24 pm, edited 3 times in total.

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

Post by Instructor »

Skif_off wrote:Правильно ли понимаю, что скрипт UndoPos.js и команды 4199/4200 - одно и то же?
Нет. UndoPos.js переходит на ближайшую к каретке позицию отмены, а 4199/4200 к отмене по очередности её занесения в буфер отмен.

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

Post by KDJ »

Skif_off wrote:SelectRangeText.js

Code: Select all

    case 1049: //Russian
      sTxtCaption = "Диапазон выделения";
      sTxtCoordin = "Координаты";
      sTxtLine    = "Строка";
      sTxtColumn  = "Колонка";
      sTxtBegin   = "Начало";
      sTxtEnd     = "Конец";
      sTxtCaret   = "Каретка";
      sTxtOffset  = "&Смещение";
      sTxtColSel  = "&Колонка";
      sTxtCarPos  = "Позиция каретки";
      sTxtCarPos0 = "L.верх";
      sTxtCarPos1 = "R.верх";
      sTxtCarPos2 = "R.низ";
      sTxtCarPos3 = "L.низ";
      sTxtApply   = "Применить";
      sTxtClose   = "Закрыть";
      break;
stops with error code 800401F2 (line: 105, symbol: 1).
Win7x64, AkelPad 4.9.5 test.
Not reproduced. For me all works properly.
Thanks for the translation.

SelectRangeText.js
Added Russian translation (by Skif_off).

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

KDJ wrote:TranslateWithGoogleAPI.js does not work.
Kley wrote:VladSh
Попробуйте удалить "?" в конце строки:

Code: Select all

var url="http://translate.google.com/translate_a/t?";
У меня так работает :)
Спасибо! 8) Поправил.
Locked