Вниз
Скачать: CL | DM;

Помогите разобраться с вставкой текста   Найти похожие ветки 

 
kalmykovser   (2004-04-25 12:20) [0]

Уважаемые Мастера Delphi,
Мне нужно сделать так чтобы при нажатии клавиши текст вставлялся из буфера обмена в объект (TEdit, TRichEdit и др.) имеющий фокус.
Вот код которым я определяю Handle объекта имеющего фокус: Procedure InsertText;
var
dwTargetOwner :DWORD;//указатель на подключаемый процесс
dwThreadID :DWORD;//указатель на текущий процесс
Result:longbool;
J :Integer;
ClipBuffer :String;
begin
// Подключение потока другого окна
dwTargetOwner := GetWindowThreadProcessId(GetForegroundWindow,nil);//указатель на подключаемый процесс
dwThreadID := GetCurrentThreadId;//указатель на текущий процесс
//if (dwTargetOwner <> dwThreadID) then begin // если не один и тот же процесс
Result := AttachThreadInput(dwThreadID, dwTargetOwner, TRUE);//подключение
//Handle объекта в активном окне я узнаю с помощью функции GetFocus
//Текст в буфер вставляеться такой командой
//Clipboard.AsText := "Delphi 6";
//И посылаю ему команду чтобы он вставил текст из буфера обмена windows
SendMessage(GetFocus,WM_PASTE,0,0);
if (Result) then AttachThreadInput(dwThreadID, dwTargetOwner, FALSE);//отключение
end;


Вопрос :
1. Почему текст не вставляеться в программы Microsoft Office (Exel,Word) в чём проблема ? Как правильно
отдавать другим программам команду PASTE ?
2. Как сохранить данные в буфере обмена на время работы этой процедуры чтобы потом восстановить их в буфере.


 
Cobalt ©   (2004-04-25 22:12) [1]

1) Возможно, придётся идти на дополнительные ухищрения, например если вставка требуется в Ворд или Эксель, то особым образом к ним подключаться, например, через COM-сервера...

2) Сохранять эти данные во временной структуре. Смотри подробности в справке.

P.S. А ты молодец, что задумался о том, что буфер может использоваться ещё кем-то.



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.031 c
3-1084451936
SergeyM
2004-05-13 16:38
2004.06.06
Удаление из таблицы?


14-1084778985
mrcat
2004-05-17 11:29
2004.06.06
Рой Джонс повержен !?


4-1083405942
Игорь
2004-05-01 14:05
2004.06.06
Расширения Windows


14-1084635145
SPeller
2004-05-15 19:32
2004.06.06
PE Viewer 1.11


1-1085235331
svsergei
2004-05-22 18:15
2004.06.06
Проблема с объемом используемой памяти




   Наверх