Форум: "WinAPI";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
ВнизДинамическое копирование информации в 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 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c