![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск текста в окне IE [D7, WinXP]
Yegorchic © (2004-06-27 03:57:00)Здрасте... Не подскажите как узнать существует ли определённый текст в открывшимся окне IE?
ЮрийК (2004-06-27 17:02:00) [1]Есть следующая задача - найти слово (фразу - во фразе слова не обязательно разделяются одним пробелом, где-то может быть и два пробела например) в вебброузере, далее селектировать найденное.
Какой можете предложить алгоритм для реализации?
Ihor Osov'yak (2004-06-27 13:02:00) [2]Задачу следует разбить на две подзадачи.
1. Получение интерфейса IHtmlDocument2 от документа в IE/
2. Имея IHtmlDocument2 задачу можно решить несколькими способами. Один из них - получить IHtmlElement от тега body и воспользоваться методом get_InnerText.
как ввод в тему по п2. delphi.vitpc.com\mastering\tweb.htm
по п1. - в ИЕ ищем окно с именем класса Internet Explorer_Server,
далее примерно так -
type
TObjectFromLResult = function(LRESULT: lResult; const IID: TIID; WPARAM:
wParam; out pObject): HRESULT; stdcall;
const
MSG: Integer = 0;
hInstLib: HWND = 0;
ObjectFromLresult: TObjectFromLresult = nil;
function GetIDocFromHWND(WHandle: HWND; var iDoc: IHtmlDocument2): HRESULT;
var
lRes: Cardinal;
begin
Result := S_FALSE;
if hInstLib = 0 then
hInstLib := LoadLibrary('Oleacc.dll');
if not assigned(ObjectFromLresult) then
@ObjectFromLresult := GetProcAddress(hInstLib, 'ObjectFromLresult');
if @ObjectFromLresult <> nil then
begin
try
if MSG = 0 then
MSG := RegisterWindowMessage('WM_HTML_GETOBJECT');
SendMessageTimeOut(WHandle, MSG, 0, 0, SMTO_ABORTIFHUNG, 1000, lRes);
Result := ObjectFromLresult(lRes, IHTMLDocument2, 0, iDoc);
finally
//FreeLibrary(hInst);
//hInst := 0;
end;
end;
end;