Показать сообщение отдельно
  #6  
Старый 08.03.2011, 19:11
@Vorona @Vorona вне форума
Прохожий
 
Регистрация: 25.02.2011
Сообщения: 4
Репутация: 10
По умолчанию

Цитата:
И за каким же шишом на сервере нужен TWebBrowser ?
Нафиг не нужен.

Я попробовал чарез CoHTMLDocument. Что-то заработало, но как-то не так...
Получилось что-то вроде того:

Комманда HELLO:
Код:
          try
            CoInitialize(nil);
             IED := CoHTMLDocument.Create as IHTMLDocument2;
             IHTTP := TIdHTTP.Create(nil);
             IE_running := true;
             newMsg := 'READY';
           except
            newMsg := 'ERROR_IE_CANNOT_START';
           end;
Комманда LOAD:
Код:
          HTML := IHTTP.Get(Trim(Copy(msg, Pos(' ', msg) + 1, Length(msg)-1)));
          OleVariant(IED).write(HTML);
          //IED.open(Trim(Copy(msg, Pos(' ', msg) + 1, Length(msg)-1)), '_self','',true);
          page_loaded := true;
          newMsg := 'OK'
Комманда DOM:
Код:
          if page_loaded then
            begin
              ClientSocket.Sendln(AnsiToUtf8((IED as IHtmlDocument2).body.innerText));
              newMsg := 'THE_END_OF_DATA_TRANSFER';
            end else newMsg := 'ERROR_PAGE_NOT_LOADED';
Это всё даже почти работает, то есть по комманде DOM я вижу то, что видит пользователь, но после второго вызова LOAD с другим адресом, по комманде DOM я всё равно продолжаю получать предыдущую страницу, хотя HTML код загружается верный.
Помогите допилить это, уже замучался с этим проэктом
P.S.: додбавил IdHttp, так как c open'ом мы не сдружились, по open'у открывается IE, после чего DOM вызывает ошибку access violation
Ответить с цитированием