Форум: "WinAPI";
Текущий архив: 2002.10.14;
Скачать: [xml.tar.bz2];
ВнизДостать выделенный текст из броузера Найти похожие ветки
← →
Ребенок Кирилл (2002-08-28 18:09) [0]Здравствуйте.
Как достать выделенный текст из броузера, например как это делает программа Yandex Search или Yandex Translate.
Спасибо
← →
Ученик (2002-08-28 19:31) [1]Нажать для броузера клавиши коипрования в буфер обмена
← →
Ученик (2002-08-28 20:09) [2]Имелось ввиду программно
← →
Ребенок Кирилл (2002-08-30 05:02) [3]А как это сделать, зная HWND окна?
← →
int64 (2002-08-30 08:03) [4]uses ...MSHTML;
type
...
TObjectFromLResult = function(LRESULT: lResult; const IID: TGUID; WPARAM: wParam; out pObject): HRESULT; stdcall;
...
function GetSelTextFromHWND_IE(WHandle: HWND; var Text: string): HRESULT;
var
hInst, Wnd: HWND;
lRes: Cardinal;
MSG: Integer;
ObjectFromLresult: TObjectFromLresult;
Doc: IHTMLDocument2;
begin
hInst := LoadLibrary("Oleacc.dll");
@ObjectFromLresult := GetProcAddress(hInst, "ObjectFromLresult");
if @ObjectFromLresult <> nil then begin
try
Wnd := FindWindowEX(WHandle, 0, "Shell DocObject View", nil);
Wnd := FindWindowEX(Wnd, 0, "Internet Explorer_Server", nil);
MSG := RegisterWindowMessage("WM_HTML_GETOBJECT");
SendMessageTimeOut(Wnd, MSG, 0, 0, SMTO_ABORTIFHUNG, 1000, lRes);
Result := ObjectFromLresult(lRes, IHTMLDocument2, 0, Doc);
if assigned(Doc) then
Text:= (Doc.selection.createRange as IHTMLTxtRange).text;
//Text:= (Doc.selection.createRange as IHTMLTxtRange).htmltext;
finally
FreeLibrary(hInst);
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Wnd: HWND;
Text: string;
begin
Wnd := FindWindow("IEFrame", nil);
if Wnd = 0 then
begin
showmessage("No Running instance of Internet Explorer");
exit;
end;
if GetSelTextFromHWND_IE(Wnd, Text)=S_OK then
Memo1.Text:= Text;
end;
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.10.14;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c