Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.47 MB
Время: 0.019 c
15-1207358206
Tirael
2008-04-05 05:16
2008.05.18
реклама линукса


3-1197115789
Gunek
2007-12-08 15:09
2008.05.18
Ошибка при использовании dbchart


15-1207044769
Alkid
2008-04-01 14:12
2008.05.18
Антиспамм в The Bat посоветуйте, плз.


15-1207128130
kiberg
2008-04-02 13:22
2008.05.18
список замен


2-1208769333
Alexey
2008-04-21 13:15
2008.05.18
Ошибка в отчёте