Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.18;
Скачать: CL | DM;

Вниз

Динамическое копирование информации в Richedit   Найти похожие ветки 

 
seregka   (2005-05-20 21:38) [0]

Мне нужно реализовать:
выделяем в IE произвольно текст. Из выпадющего меню выбираем программу (уже реализовано) и передаем выделенный текст в RichEdit программы.

Подскажите, как это сделать.


 
KilkennyCat ©   (2005-05-21 11:32) [1]

Работать с буфером обмена, естественно.


 
seregka   (2005-05-21 11:47) [2]

я понимаю, что с буфером
Как мне сделать так,чтобы по запуску программы происходило копирование выделенной в окне броузера информации в буфер. Дальше то понятно - вставлять из буфера в richedit. А вот как в него копировать текст не знаю.
Помогите, пожалуйста.


 
KilkennyCat ©   (2005-05-21 11:50) [3]

Это надо послать сообщение WM_COPY окну, где текст.


 
seregka   (2005-05-21 12:00) [4]

Подскажите, как вытянуть handle окна IE и правильно отправить сообщение. Просто я в этом плохо соображаю:
sendmessage(броузера handle, WM_COPY, ?,?)


 
GrayFace ©   (2005-05-21 17:57) [5]

Если ты сможешь получить hWnd самого IE, то дальше не проблема. Должна быть возможность не только запихнуть прогу в меню, но и получить какие-то сведения. В противном случае можно использовать самый верхний IE. Возможность есть?


 
seregka   (2005-05-21 18:09) [6]

в том то и дело, что я не знаю как получить hwnd броузера. Сколько бы IE не было открыто, надо копировать только из текущего. Программа запускается из контекстного меню броузера.


 
rOOse ©   (2005-05-21 19:00) [7]

procedure TForm1.Button2Click(Sender: TObject);
var
 hg:HGLOBAL;
 lpv:pointer;
 buff:array[0..50] of char;
begin
    buff:="sdfgsf3213123";
    OpenClipboard(0);
    hg:= GlobalAlloc(GMEM_MOVEABLE, strlen(buff));
    lpv:= GlobalLock(hg);
    copymemory(lpv, @buff, strlen(buff));
    GlobalUnlock(hg);
    SetClipboardData(CF_TEXT, hg);
    CloseClipboard();
end;


 
seregka   (2005-05-21 19:21) [8]

зачем городить огород, когда можно просто
richedit.copytoclipboard;

Мне же нужно выделенный в броузере текст копировать в буфер обмена


 
rOOse ©   (2005-05-21 19:24) [9]

а ты не забыл что задаешь вопрос в разделе winapi


 
Anatoly Podgoretsky ©   (2005-05-21 19:36) [10]

Ctrl+C/Ctrl+V


 
seregka   (2005-05-21 19:50) [11]

rOOse
Никак нет! Но Ваш код на копирование в буфер не решает моей главной проблемы - как передать из броузера в программу.

Anatoly Podgoretsky
Актуально!! Главное, автоматизированно :-))


 
Anatoly Podgoretsky ©   (2005-05-21 20:22) [12]

Действий немного меньше, чем вызывать попап меню, затем в нем пункт копировать.
Есть старый лозунг - не сметь трогать буфер обмена зараза!. Не твое.


 
seregka   (2005-05-21 20:27) [13]

проблему решил:

function GetSelectedIEtext: string;
var
  x: Integer;
  Sw: IShellWindows;
  IE: HWND;
begin
  IE := FindWindow("IEFrame", nil);
  sw := CoShellWindows.Create;
  for x := SW.Count - 1 downto 0 do
    if (Sw.Item(x) as IWebbrowser2).hwnd = IE then begin
      Result := variant(Sw.Item(x)).Document.Selection.createRange.Text;
      break;
    end;
end;



Страницы: 1 вся ветка

Текущий архив: 2005.07.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.049 c
10-1096353666
Zyb
2004-09-28 10:41
2005.07.18
ActiveX


6-1113309267
ламерок
2005-04-12 16:34
2005.07.18
Программа для работы с поисковыми запросами на делфи


1-1119987879
Чайник
2005-06-28 23:44
2005.07.18
Проблема с целочисленной переменной.


5-1090750591
P.N.P.
2004-07-25 14:16
2005.07.18
PropertyEditor


1-1120296879
A№t0№
2005-07-02 13:34
2005.07.18
Использование try