Цитата:
И за каким же шишом на сервере нужен 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