Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Надо перехватить сообщение о копировании в буфер обмена от любого приложения.


lipskiy ©   (2002-03-24 00:54:00) 

Пример, аналогичный FAQ, не работает. Что здесь не так?

type
TForm1 = class(TForm)
private
procedure WMCOPY(var Message: TMessage);
message WM_COPY;
public
end;

var
Form1: TForm1;

implementation
{$R *.DFM}

procedure TForm1.WMCOPY(var Message: TMessage);
begin
beep;
end;


lipskiy   (2002-03-24 16:13:00) [1]

Спасибо, буду разбираться.


MBo   (2002-03-24 09:24:00) [2]

вот кривой пример как отправная точка.
посмотри в SDK Help эти функции
а также WM_CHANGECBCHAIN и т.д.
и разберись, это нетрудно.

TForm1...
procedure CLPChanged(var Msg : TMessage);message WM_DRAWCLIPBOARD;

procedure TForm1.Button1Click(Sender: TObject);
begin
SetClipboardViewer(handle);
end;

procedure TForm1.CLPChanged(var msg: TMessage);
var CBF:Cardinal;
begin
OpenClipBoard(0);
memo1.clear;
CBF:=0;
repeat
CBF:=EnumClipboardFormats(CBF);
if CBF<>0 then
Memo1.Lines.Add(Inttostr(CBF));
until CBF=0;
label1.caption:="CLP FormatCount "+inttostr(CountClipboardFormats);
CloseClipBoard;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо