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

Отлов копирования (любыми способами)   Найти похожие ветки 

← →
КВАНТ   (2006-12-15 23:31) [0]

Здравствуйте!
I need help. 1) Мне требуется глобально отловить копирование (только текста) и любыми способами (будь то Ctrl+C или из меню).
Или: 2) на самом деле нужно при нажатии, например Ctrl+Alt+C, скопировать выделенный текст (из другой программы, т.е. глобально) и вставить его, допустим в тот же RichEdit.
Если никак с (2), то хотя бы (1).
Спасибо!


← →
Джо ©   (2006-12-15 23:33) [1]

RegisterClipboardViewer


← →
Джо ©   (2006-12-15 23:35) [2]

Пардон, SetClipboardViewer.


← →
КВАНТ   (2006-12-15 23:37) [3]

Спасибо, а можно небольшой примерчик?


← →
КВАНТ   (2006-12-15 23:38) [4]

А с доп. хоткеем не получится?


← →
Джо ©   (2006-12-15 23:40) [5]

>
>
> [4] КВАНТ   (15.12.06 23:38)
> А с доп. хоткеем не получится?

Нет.


← →
КВАНТ   (2006-12-15 23:41) [6]

Оч жаль.. Все равно спасиб ;)


← →
Джо ©   (2006-12-15 23:49) [7]

> [3] КВАНТ   (15.12.06 23:37)
> Спасибо, а можно небольшой примерчик?

В таком роде:

unit Unit35;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;

type
 TForm35 = class(TForm)
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
 private
   FNextClipViewerHandle: Integer;
   procedure ForwardClipMsg(var Msg: TMessage);
   procedure WmDrawClipBoard (var Msg: TMessage); message WM_DRAWCLIPBOARD;
   procedure WmChangeCbChaing (var Msg: TMessage); message WM_CHANGECBCHAIN;
 public
   { Public declarations }
 end;

var
 Form35: TForm35;

implementation

{$R *.dfm}

procedure TForm35.FormCreate(Sender: TObject);
begin
 FNextClipViewerHandle := SetClipboardViewer(Handle);
 if FNextClipViewerHandle = 0 then
   RaiseLastOSError;

end;

procedure TForm35.FormDestroy(Sender: TObject);
begin
 ChangeClipboardChain(Handle,FNextClipViewerHandle);
end;

procedure TForm35.ForwardClipMsg(var Msg: TMessage);
begin
 if FNextClipViewerHandle <> 0 then
   SendMessage (FNextClipViewerHandle,Msg.Msg,Msg.WParam,Msg.LParam);
end;

procedure TForm35.WmChangeCbChaing(var Msg: TMessage);
begin
 if Msg.WParam = FNextClipViewerHandle then
   FNextClipViewerHandle := Msg.LParam
 else
   ForwardClipMsg(Msg);
end;

procedure TForm35.WmDrawClipBoard(var Msg: TMessage);
begin
 ForwardClipMsg(Msg);
 // Собственно, тут можно проверять содержимое Буфера Обмена
end;

end.



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

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



Память: 0.46 MB
Время: 0.025 c
9-1141242252
Artem_usb
2006-03-01 22:44
2007.01.07
RTS алгоритмы реальных игр


2-1166169199
KyRo
2006-12-15 10:53
2007.01.07
Как сделать на компонент полупрозрачным


15-1166106278
shulcsan
2006-12-14 17:24
2007.01.07
О среде разработки


15-1166099442
Andre_s
2006-12-14 15:30
2007.01.07
Установка системы на флэшку


15-1166272010
Chort
2006-12-16 15:26
2007.01.07
Лучший проигрыватель видео.




   Наверх