После обеда, с затуманенными мозгами просто тупо начал искать решения большого спектра проблем, связанных с блокированием работы IE с УТМ, полностью озвученных в теме:
https://olegon.ru/showthread.php?t=33635 … и "обезьяна нашла гранаты", а точнее новые/старые механизмы инструмента разработки решающие их:
1. Во всех режимах вызова
методов IE, причем косяно работающих. Пример кода:
Код:
LOCA oIE
PRIV cZ := Alltrim( cRes )
TRY // Декларирование структуры с обработкой ошибок выполнения
oIE := CreateObject("InternetExplorer.Application" )
CATCH
ErrMess( "Не могу открыть IE! Не работает интернет, используется не Windows и etc. [" + Ole2TxtError()+ "]",cError )
RETU
END
// Активирую Web страницу по настройкам программы. По умолчанию значение .F.
oIE:Navigate( cZ )
IF !lgWin10 THEN pNo10(oIE)
Просто заменяю на другой класс API... и во всех режимах будет вызываться "броузер по умолчанию", например:
Код:
PROC pHelpResurs(cRes)
LOCA loShell, cZ:=Alltrim(cRes)
loShell := CreateObject("Shell.Application")
loShell:Open(cZ)
2. Заморочка о которой там же указывал - при запуске внешнего приложения сама программа "замораживалась" до его полного завершения... что "не давало" простого способа вызова стороннего броузера, но
оказывается инструмент содержит функцию вызывающую внешнею программу, как изолированный процесс Windows… и более того использующий свободное ядро процессора, что резко ускоряет работу программ, т.е. вместо:
PRIV cExe:="hle rfu2"
RUN &cExe
… которое "морозит" работу программы
Можно использовать:
LOCA cExe:="hle rfu2"
HB_OpenProcess( cExe )
… запускающее независимый процесс
P.S. Теперь осталось вспомнить ещё "места" программ, где данные находки можно с пользой для Вас использовать