30 секундная блокировка Турбоконфа при вызове ПерейтиВПозицию() при активном окне другого приложения

tormozit Открыто Высокий

Похоже что такое начало происходить в результате свежих доработок метода ПерейтиВПозицию() Турбоконфа.

Не удалось выполнить скрипт ИРАдаптер->ПерейтиКОпределению
ScriptEngine.Machine.ExternalSystemException: {Модуль C:\Portable\TurboConf\user_scripts\RDT.os / Ошибка в строке: 648 / Внешнее исключение (System.Exception): Время ожидания окна истекло}
ТурбоКонф.ПерейтиВПозицию(1, ВыделениеДвумерное.НачальнаяСтрока); // Нужно для запоминания позиции в истории переходов конфигуратора и для центриования по высоте
---> System.Exception: Время ожидания окна истекло
в TurboConf.Core.TurboAPI.TurboApi.WaitForWindow(IntPtr confWindow, String title, Int32 maxTime)
в TurboConf.Core.TurboAPI.TurboApi.GoTo(IntPtr fg, Point caretPos)
в lambda_method(Closure , Api , IValue[] )
в ScriptEngine.Machine.Contexts.AutoContext`1.CallAsProcedure(Int32 methodNumber, IValue[] arguments)
в ScriptEngine.Machine.MachineInstance.ResolveMethodProc(Int32 arg)
в ScriptEngine.Machine.MachineInstance.MainCommandLoop()
--- Конец трассировки внутреннего стека исключений ---
в ScriptEngine.Machine.MachineInstance.MainCommandLoop()
в ScriptEngine.Machine.MachineInstance.ExecuteCode()
в ScriptEngine.Machine.MachineInstance.ExecuteMethod(IRunnable sdo, Int32 methodIndex, IValue[] arguments)
в ScriptEngine.Machine.Contexts.ScriptDrivenObject.CallAsFunction(Int32 methodNumber, IValue[] arguments, IValue& retValue)
в TurboConf.HostApplication.HostApplicationForm.ExecuteScript(Script script, Keys ctrl, Keys alt, Keys shift, ScreenForm statusForm, String entryPoint, ScriptOptions options, IVariable[] parameters)

Ссылка скрыта

Комментарии

bolsun
#1, 10 февраля 2024 11:21

Что за активное окно другого приложения и почему оно активно в момент перехода, а не окно модуля?


tormozit
#2, 10 февраля 2024 11:36

В конкретном случаев это приложение ИР, которое активировало свое окно из-за несовместимой с адаптером версии ИР. Но теоретически это может быть и какое то другое приложение которое покажет какое то оповещение/предупреждение работая в фоне.


bolsun
#3, 10 февраля 2024 13:28

Если какое-то окно вызвалось в процессе работы функции перехода и фокус ушел из модуля, то тут ничего не поделать. Окно перехода к строке не будет вызвано и возникнет ошибка.
Но вот 30 сек ждать его конечно смысла нет, не знаю почему такое большое ожидание установлено, уменьшу таймаут до разумных значений.


bolsun
#4, 10 февраля 2024 13:37

Можно конечно попробовать принудительно возвращать фокус в модуль перед вызовом окна. Но как это будет работать нужно тестировать.


tormozit
#5, 10 февраля 2024 13:39

(3) bolsun, да весь вопрос в длительном ожидании. Кажется 500мс будет достаточно.


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