Форум: "Основная";
Текущий архив: 2003.01.06;
Скачать: [xml.tar.bz2];
ВнизТекст или HTML-код из IE Найти похожие ветки
← →
Programist21 (2002-12-22 13:30) [0]Народ, как из Internet Explorer"a достать текст или (что ещё лучше) HTML-код в свою программу (в Memo, например)?
Очень надо. Заранее спамибо!
← →
int64 (2002-12-22 20:41) [1]uses ... SHDocVw, MSHTML, ActiveX;
...
function SaveDocToStrings(Doc: IDispatch; var AStrings: TStrings): HResult;
var
IpStream: IPersistStreamInit;
AStream: TMemoryStream;
begin
AStream := TMemoryStream.Create;
try
IpStream := doc as IPersistStreamInit;
if not Assigned(IpStream) then Result := S_FALSE else
if Succeeded(IpStream.save(TStreamadapter.Create(AStream), TRUE))
then begin
AStream.Seek(0, 0);
AStrings.LoadFromStream(AStream);
Result := S_OK;
end else Result := S_FALSE;
except
Result := S_FALSE;
end;
AStream.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i : Integer;
sw: Ishellwindows;
wb: IWebbrowser2;
Strings: TStrings;
begin
Strings:=Memo1.Lines;
sw:= CoShellWindows.Create;
for i := 0 to SW.Count - 1 do
begin
wb:= Sw.Item(i) as IWebbrowser2;
{
В этом месте определяем конкретный IE из списка запущенных.
Можно по url или по title.
А можно и просто оставить по щёту.
}
if HTMLDocument(wb.Document).url=
" http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1040553009&n=0"
then
{if HTMLDocument(wb.Document).title=
"Мастера DELPHI | Текст или HTML-код из IE"
then}
SaveDocToStrings(wb.Document, Strings);
end;
end;
← →
Programist21 (2002-12-23 11:02) [2]to int64 Просто ОГРОМНЕЙШЕЕ СПАСИБО!!! Всё круто работает!
Но есть и кое что не так :(
1) Код надо выцеплять не по title, не по url и не по count, а по активному окну - то есть выцепляем то, которое последнее было активным! Как это осуществить?
2) И ещё один вопрос: Как можно отловить, что пользователь сменил (сделал активным) другое окно IE???
← →
Opuhshii (2002-12-23 11:27) [3]С помощью IShellWindows - получите все IWebBrowser"ы,.. а уж какой был активный,.. мда,.. FindWindow.... у Window можно и текст узнать,.. а он обычно title и есть... а уж которое последнее было активным,. это брузеру не к чему,.. имхо оно вам надо,.. дык вот именно вы и делайте.. ))
"Как можно отловить, что пользователь сменил (сделал активным) другое окно IE???" точно также как если это было любое другое окно,.. необязательно IE.... ))
← →
Programist21 (2002-12-23 13:45) [4]А тогда как отловить какое окно было последним активным? :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.01.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c