Page 5 of 99

Posted: Mon May 12, 2014 4:11 am
by Instructor
KDJ wrote:In which case, RegisterCallback returns false (0)?
If you will look at sources RegisterCallback returns NULL, for example, if script try to register 31 callback. But plugin also set HRESULT to DISP_E_BADINDEX to specify error for user, because RegisterCallback error it is a stop execution error.
CreateDialog_functions.js wrote:var hDC = oSys.Call("User32::GetDC", 0);
Just for information - on Windows with aero effect getting entire screen device context even single time could take more than second.

Posted: Mon May 12, 2014 7:23 pm
by KDJ
Instructor
So the following code should work faster?

Code: Select all

var hDC = oSys.Call("User32::GetDC", AkelPad.GetMainWnd());

Posted: Mon May 12, 2014 8:09 pm
by Infocatcher
Instructor
Hmm...

Code: Select all

var t = new Date().getTime();
oSys.Call("User32::GetDC", 0);
WScript.Echo((new Date().getTime() - t) + " ms");
"0 ms" for me on Windows 7 x86 (with Aero enabled). But

Image

Posted: Tue May 13, 2014 2:04 pm
by Instructor
KDJ
Yes. I'd rather use AkelPad.GetMainWnd() instead of zero.

Infocatcher
Помню была проблема с медленной прорисовкой активного столбца на Win7 с aero - там я также получал GetDC с 0. Уже запамятовал, но возможно уское место было именно при прорисовке. В любом случае лучше получить DC окна AkelPad'а, чтобы избежать возможных проблем с быстродействием.

Posted: Sat May 17, 2014 10:02 pm
by KDJ
AkelPadRestart.js
Added: support for SDI mode.

Posted: Sun May 18, 2014 5:31 pm
by KDJ
AkelPadRestart.js
Changed: saving modified documents before restart.
Added: possibility to translate language strings.

Posted: Tue May 20, 2014 9:08 am
by Andrey_A_A
KDJ, не могли ли бы ввести новый параметр в скрипт Translator.js
чтобы при вызове автоматически переводился текст

к примеру Call("Scripts::Main", 1, "Translator.js", `"ru en" "autotrans"')

Заранее спасибо.

Posted: Tue May 20, 2014 10:04 am
by KDJ
Andrey_A_A
Options->Settings, turn on: "Load source text to panel at start" and "Start immediately translate".

Posted: Tue May 20, 2014 10:13 am
by Andrey_A_A
KDJ
я поставил галочку, но всё равно не происходит перевода при старте.

Posted: Tue May 20, 2014 6:03 pm
by KDJ
Andrey_A_A
Well, sometimes it does not work.
Try this test version Translator_test.js: KDJ.zip

Posted: Tue May 20, 2014 8:13 pm
by KDJ
AkelPadRestart.js
Fixed: does not work if the option "Don't open a program twice" is not set.

Posted: Tue May 20, 2014 8:19 pm
by Andrey_A_A
KDJ wrote:Andrey_A_A
Well, sometimes it does not work.
Try this test version Translator_test.js
Спасибо, в этой версии работает!

------------- Добавлено ----------------
Ваш скрипт AkelPadRestart.js у меня не работает, просто закрывает программу. Думаю не хватает паузы, а лучше сделать ожидание завершения процесса, потому что вкладок может быть достаточно много

Posted: Wed May 21, 2014 9:48 am
by San_dr
Мне нужно вызвать окно AkelPad с заранее сформированным видом, развернутое (но с панелью заголовка, не FullScreen).
Конструкция вида

Code: Select all

-"Основная развёрнутая" Call("Scripts::Main", 1, "EvalCmd.js", `AkelPad.Call("Scripts::Main", 1, "ScreenView.js", '-View="DefaultFS" -FullScreen=0'); {AkelPad.Command(4331);}`)
работает, но окно через раз развернуто/восстановленно. Меняю метод с Command(4331) на Show(3) - т.е. показавать развернутым

Code: Select all

-"Основная развёрнутая" Call("Scripts::Main", 1, "EvalCmd.js", `AkelPad.Call("Scripts::Main", 1, "ScreenView.js", '-View="DefaultFS" -FullScreen=0'); {AkelPad.Show(3);}`)
и это вызывает ошибку скрипта EvalCmd.js
пробовал менять последовательность

Code: Select all

 -"Основная развёрнутая" Call("Scripts::Main", 1, "EvalCmd.js", `AkelPad.Show(3);  {AkelPad.Call("Scripts::Main", 1, "ScreenView.js", '-View="DefaultFS" -FullScreen=0');}`)
- без разницы, ошибка скрипта: Объект не поддерживает это свойство или метод...
Как правильно собрать такой... паровоз?

Posted: Wed May 21, 2014 5:42 pm
by KDJ
San_dr

Code: Select all

-"Основная развёрнутая" Call("Scripts::Main", 1, "EvalCmd.js", `AkelPad.Call("Scripts::Main", 1, "ScreenView.js", '-View="DefaultFS" -FullScreen=0'); AkelPad.SystemFunction().Call("User32::ShowWindow", AkelPad.GetMainWnd(), 3 /*SW_MAXIMIZE*/);`)

#or

-"Основная развёрнутая" Call("Scripts::Main", 1, "EvalCmd.js", `AkelPad.Call("Scripts::Main", 1, "ScreenView.js", '-View="DefaultFS" -FullScreen=0'); AkelPad.SendMessage(AkelPad.GetMainWnd(), 274 /*WM_SYSCOMMAND*/, 0xF030 /*SC_MAXIMIZE*/, 0);`)

Posted: Wed May 21, 2014 7:38 pm
by KDJ
Translator.js
Fixed: option "Start immediately translate" sometimes does not work.
Andrey_A_A wrote: Ваш скрипт AkelPadRestart.js у меня не работает, просто закрывает программу. Думаю не хватает паузы, а лучше сделать ожидание завершения процесса, потому что вкладок может быть достаточно много
What versions of Windows and AkelPad are you using (32/64 bit)?