Вниз
Скачать: 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
15-1166411867
Slider007
2006-12-18 06:17
2007.01.07
С днем рождения ! 16 декабря


2-1166211592
kolj
2006-12-15 22:39
2007.01.07
ShellExecute


2-1166459366
ezorcist
2006-12-18 19:29
2007.01.07
узнать IP адреса всех ПК в локальной сети?


15-1166094425
dimonf
2006-12-14 14:07
2007.01.07
Нужен шаблон рекомендательного письма на английском языке


2-1166172987
Tupoy
2006-12-15 11:56
2007.01.07
Научите работать с клавой




   Наверх