Scripts discussion (3)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 173
Joined: Mon Dec 06, 2010 9:53 am
Location: г.Харьков, Русь

Post by San_dr »

KDJ. моя сборка для изучения проблемы http://rghost.ru/60219482

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

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

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

Post 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);
Так не сворачивается?

Offline
Posts: 269
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Post 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 (напр.) и будет проверяться по-гречески при условии, если соответствующая проверка установлена.

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

Post by FeyFre »

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


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

Offline
Posts: 269
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Post by yozhic »

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

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

Post by KDJ »

San_dr
Try this:
ScreenView.js
Added: force redraw main window after changing view.

Offline
Posts: 173
Joined: Mon Dec 06, 2010 9:53 am
Location: г.Харьков, Русь

Post by San_dr »

KDJ. спасибо бардзо :D
проблема решена, всё работает.

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

Post by KDJ »

Translator.js
WindowsList.js
Fixed: running without AkelPad (as ActiveX).

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

Post 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*/...

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

Post by KDJ »

Instructor
Corrected: AkelPadManualSettings.js


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

Post by Instructor »

FeyFre, yozhic
SpellCheck.js v1.3


Offline
Posts: 269
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Post by yozhic »

Instructor
SpellCheck.js v1.3
У меня отлично всё – лишних окон никаких, окошко проверки на переднем плане, Ворд в процессах больше не висит (когда не выделено ничего). Спасибо.

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

Post by FeyFre »

Подтверждаю
( т.е. пока ничего не нарыл :D )

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