В своё время я начинал программировать на языке - AutoIt у меня до сих пор на компе лежит папка с её платформой. как то просматривая её я наткнулся на один любопытный пример, где в окне программы во фрейме показывалась HTML страница. я решил попробовать сделать это Ассемблере. для начала я урезал этот пример до минимума и поменял ссылку на открытие страницы там была дана ссылка на ихний сайт - AutoIt, но так как она очень долго загружается я в примере поменял её на адрес HTML страницы, которую я просто положил в корень своего диска. попробывал дизасемблирование экзешника, но IDA выдаёт бесмысленный поток чисел. пример кодинга на этом языке до банальности прост, тегов на этом языке нет по этому я заверну в теги - ASM Код (ASM): #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <IE.au3> Local $oIE = _IECreateEmbedded() GUICreate("Test",800,400) GUISetState() GUICtrlCreateObj($oIE,10,10,780,380) _IENavigate($oIE,"file:///C:/assch.htm") While 1 $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Then ExitLoop WEnd Exit после анализа я понял только одно, что HTML страница показывается средствами - Internet Explorer алгоритм кодинга первые два подключаемых файла это банальные константы единственный для интереса подключаемый файл это - IE.au3 сначала создаётся окно программы Код (ASM): GUICreate("Test",800,400) GUISetState() потом функция - _IECreateEmbedded() возвращает какой то объект - $oIE под этот объект создаётся фрейм Код (ASM): GUICtrlCreateObj($oIE,10,10,780,380) потом функция - _IENavigate выводит страницу в этот фрейм по указанной ссылке Код (ASM): _IENavigate($oIE,"file:///C:/assch.htm") ну следующий код это банальная обработка сообщений и выход Код (ASM): While 1 $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Then ExitLoop WEnd Exit единственное что в данном случае должно представлять интерес это создание объекта функцией - _IECreateEmbedded() и вывод страницы во фрейм функцией - _IENavigate посмотрев подключаемый файл - IE.au3 я нашёл там функцию - _IECreateEmbedded() в которой интерес может представлять только первая строчка, остальной алгоритм функции это банальная работа над ошибками Код (ASM): Local $o_object = ObjCreate("Shell.Explorer.2") здесь можно предположить что внутренняя функция - ObjCreate вытаскивает ссылку на какой то интерфейс - "Shell.Explorer.2" предполагаю, что этот интерфейс относится к - Internet Explorer, ну а дальше, используя эту ссылку функция - _IENavigate делает свою часть работы экзешник примера на AutoIt в RAR формате ради интереса прилагаю - Test.rar только, по понятным причинам, указанная страница у вас открываться не будет там скорее всего появится информация что страница не может быть открыта, но для наглядного примера то есть увидеть смысл я думаю этого будет достаточно Если кто в теме подскажите пожалуйста, как это перевести на более понятные API рельсы
Ну, тут все просто: надо реализовать в своем окне парочку интерфейсов, чтобы разместить на нем ActiveX контрол
Я писал скрипты в банке на ней, очень классная. Приходит чел. и говорит отправь такую форму туда, а эту туда, или нужно до 16 отправлять каждый день. Просто ярлык запускаешь, а она уже сама все сделает как ты ей приказал.
Спасибо за наводку Но честно говоря я не в теме и по этому для меня это будет не совсем просто разобратся было бы не плохо конкректный пример реализации Но всё равно большое спасибо
А это и есть конкретный пример. Это окно-контейнер ActiveX контролов, после регистрации класса окна, ты можешь создавать его функцией CreateWindow(), указывая в качестве класса "AxCtrl", а в качестве заголовка CLSID интересующего тебя контрола. Но это только первая (самая малая) часть кода, которую тебе придется написать для работы с IE на winapi. Затем тебе придется написать (если не найдешь готовых) все интерфейсы IE, чтобы через них взаимодействовать с внедренным на окно контролом (вызывать метод Navigate() и т.п.). В аттаче пример того, как это выглядит для MsRDP. Там где-то после десятитысячной строки есть предостережение: не стоит влезать в эту тему, ты молодой, шутливый...