Page 42 of 99

Posted: Thu Jan 08, 2015 9:51 pm
by San_dr
KDJ. моя сборка для изучения проблемы http://rghost.ru/60219482

Инструкция по воспроизведению ошибки внутри, в виде рисунка manual.jpg

проверил на "7"х64 и ХРх64 - ошибка воспроизводится.

Posted: Fri Jan 09, 2015 6:53 am
by Instructor
FeyFre wrote:Мне помогло

Code: Select all

diff --git a/Scripts/SpellCheck.js b/Scripts/SpellCheck.js
index 7b093d1..e313729 100644
--- a/Scripts/SpellCheck.js
+++ b/Scripts/SpellCheck.js
@@ -32,10 +32,13 @@ if (hWndEdit)
         oSpellDoc.Content.Text=pSelText;
 
         pTextIn=oSpellDoc.Content.Text;
-        if (Word.Options.CheckGrammarWithSpelling == true)
+        if (Word.Options.CheckGrammarWithSpelling == true) {
+          Word.ActiveWindow.WindowState=0;  //wdWindowStateNormal
           oSpellDoc.CheckGrammar();
-        else
+        } else {
+          Word.ActiveWindow.WindowState=0;  //wdWindowStateNormal
           oSpellDoc.CheckSpelling();
+        }
         pTextOut=oSpellDoc.Content.Text;
 
         oSpellDoc.Close(false);
Так не сворачивается?

Posted: Fri Jan 09, 2015 11:08 am
by yozhic
Instructor, FeyFre
Так не сворачивается?
Сегодня попробовал - работает хорошо. Т.е. при запуске скрипта «наперёд» выпрыгивает только окошко Проверки (одно). Тогда как в варианте FeyFre у меня выпрыгивают два окна: Проверки и дополнительное Word с текстом. Но вчера я самостоятельно менял значения в Word.ActiveWindow.WindowState= от 0 до 2, и Проверка то выпрыгивала «наперёд», но не выпрыгивала. Тогда как в варианте FeyFre стабильно «наперёд». Почему – так и не понял. Если ещё когда случится – отрапортую.

А себе я ещё добавил для принудительной настройки языка

Code: Select all

[=]  var pSelText=AkelPad.GetSelText();
[+]  var nLangID=AkelPad.GetArgLine();

...

[=]        else
[=]          Word.ActiveWindow.WindowState=0;  //wdWindowStateNormal

[+]        if (nLangID)
[+]          Word.Selection.LanguageIDOther=nLangID;

[=]        oSpellDoc.Content.Text=pSelText;
Теперь скрипту можно передать параметр 1032 (напр.) и будет проверяться по-гречески при условии, если соответствующая проверка установлена.

Posted: Fri Jan 09, 2015 1:46 pm
by FeyFre
Instructor
Только окно проверки всплывает на заднем фоне. Но в отличии от Вашего исходного варианта(а также мною модифицированного) в панели задач "Winword" не появляется, поэтому приходится сворачивать всю ту сотню окон которые открыты(ну либо долго и нудно листать по Alt+Tab что тоже плохо ибо по какой-то причине искомое окно не в голове и не в хвосте списка а где-то по серединке).


ЗЫ: ещё баг. Если запустить скрипт без выделения, как положено всплывает окно ошибки, но: запущеный процесс WinWord собственно остается висеть надолго(навсегда я бы сказал). Происходит это потому что создание(var Word=new ActiveXObject("Word.application");) происходит всегда, потом выполняется проверка наличия выделения (if (pSelText)) которое уходит на else, а закрытие всего и вся(Word.Quit(true);) выполняется только если выделение было. *выдохнул*

Posted: Fri Jan 09, 2015 5:33 pm
by yozhic
FeyFre
окно проверки всплывает на заднем фоне
Утром запустил Инструкторовский 1.1 – всё работало, всплывало на переднем фоне. Сейчас решил поэкспериментировать, запустил 1.0 с Word.ActiveWindow.WindowState=2 - всплыло на заднем фоне. После этого снова запустил 1.1 – всплыло на заднем (что за фокусы :shock: ведь только что всплывало на переднем). И теперь что ни делаю, на переднем всплывает только ваш модифицированный вариант, все остальные варианты - на заднем.
ещё баг. Если запустить скрипт без выделения
Точно. А я то думаю откуда у меня куча незакрытых процессов Word взялась.

Posted: Fri Jan 09, 2015 9:04 pm
by KDJ
San_dr
Try this:
ScreenView.js
Added: force redraw main window after changing view.

Posted: Fri Jan 09, 2015 9:44 pm
by San_dr
KDJ. спасибо бардзо :D
проблема решена, всё работает.

Posted: Sat Jan 10, 2015 12:48 pm
by KDJ
Translator.js
WindowsList.js
Fixed: running without AkelPad (as ActiveX).

Posted: Sat Jan 10, 2015 1:01 pm
by Instructor
KDJ
Russian:
AkelPadManualSettings.js wrote://Exec("командная строка"...

Ожидать завершения программы. 1 - ожидать, 0 - не ожидать (по умолчанию).
СтильОкна
См. описание СтильГлавногоОкна метода /Show(). Замечание: программы могут игнорировать данный параметр.

/Exec("notepad.exe")

//If(`SendMain(1222 /*AKD_GETMAININFO*/...
English:
AkelPadManualSettings.js wrote:/OpenFile("C:\File.txt"...

/If("expression", "IfTrue", "IfFalse"))

"IfFalse")

//If(`SendMain(1222 /*AKD_GETMAININFO*/...

Posted: Sat Jan 10, 2015 2:05 pm
by KDJ
Instructor
Corrected: AkelPadManualSettings.js

Posted: Sat Jan 10, 2015 6:08 pm
by Infocatcher

Posted: Mon Jan 12, 2015 10:56 am
by Instructor
FeyFre, yozhic
SpellCheck.js v1.3

Posted: Mon Jan 12, 2015 12:16 pm
by Infocatcher

Posted: Mon Jan 12, 2015 1:12 pm
by yozhic
Instructor
SpellCheck.js v1.3
У меня отлично всё – лишних окон никаких, окошко проверки на переднем плане, Ворд в процессах больше не висит (когда не выделено ничего). Спасибо.

Posted: Mon Jan 12, 2015 3:52 pm
by FeyFre
Подтверждаю
( т.е. пока ничего не нарыл :D )

ЗЫ: таки нашел, но на любителя: выделил текст, нажал гор.клавиши, ну и так как я довольно гиперактивный а Word стартует не спеша(а у меня в фоне чего только не работает), то успеваю мышкой установить курсор куда-нибудь в другое место. Если при этом сильно (не)повезет, то скрип просто увидит пустое выделение, матернеться и закроется. Если же таки выделение успеет поймать, то в конце процесса проверки как догадываетесь исправленный текст вставится "не туда". Стоит ли предпринимать что-то в таких случаях уж решайте сами))