Текущий архив: 2008.05.18;
Скачать: CL | DM;
ВнизWebBrowser Найти похожие ветки
← →
Lid © (2007-08-10 20:47) [0]Всем доброго времени суток :)
Появился у меня такой вопросик, значит нужно поставить на форму TWebBrowser и TMemo, ну и кнопочку естественно :) и значит при открытии страницы какой-нибудь (это я знаю как сделать) должно автоматически происходить следующие действия:
1) Выделение текста в WebBrowser (Ctrl+A в IE)
2) Копирование этого текста (Ctrl+C в IE)
3) Вставление этого текста в Memo (Ctrl+V в IE)
Так вот собственно как сделать эти 3 пункта я непонимаю, пробовал сделать что-то типа keybd_event("A", 0,0,0); и т.д и мало того что не получается, так еще и вручную не получается скопировать тест, хотя страницу выделить автоматически получилось :)
Заранее спасибо :)
← →
WASM (2007-08-12 09:00) [1]
function WB_GetSelectedText(WB: TWebBrowser): string;
var
Document: Variant;
TR: IHTMLTxtRange;
begin
Document:= WB.Document;
if WB.Document <> nil then
Result := Document.Selection.createRange.Text
else
Result := "";
end;
procedure WriteToClipboard(s: WideString);
var
Handle: THandle;
HandlePtr: Pointer;
Size: Cardinal;
begin
if OpenClipboard(Self.Handle) then
begin
EmptyClipboard;
Size:= SizeOf(s[1]) * (Length(s) + 1);
Handle:= GlobalAlloc(GMEM_MOVEABLE + GMEM_DDESHARE, Size);
if Handle = 0 then
Exit;
HandlePtr:= GlobalLock(Handle);
Move((PWideChar(s))^, HandlePtr^, Size);
GlobalUnLock(Handle);
SetClipboardData(CF_UNICODETEXT, Handle);
CloseClipboard();
end;
end;
procedure TForm1.WebBrowser1NavigateComplete2(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
try
WebBrowser1.ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_PROMPTUSER);
WriteToClipboard(WB_GetSelectedText(WebBrowser1));
Memo1.PasteFromClipboard;
except
end;
end
Страницы: 1 вся ветка
Текущий архив: 2008.05.18;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.055 c