Форум: "Начинающим";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];
ВнизОтлов копирования (любыми способами) Найти похожие ветки
← →
КВАНТ (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 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c