Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.09;
Скачать: CL | DM;

Вниз

Как узнать момент копирования текста в буфер обмена ?   Найти похожие ветки 

 
HWND   (2006-01-17 22:02) [0]

Как узнать момент копирования текста в буфер обмена ?(хендел окна известен)

И ещё как получить выделенный текст в другом окне?


 
Rouse_ ©   (2006-01-17 22:09) [1]

SetClipboardViewer


 
HWND   (2006-01-18 02:21) [2]

Спасибо, это я сделал:


private
 NH:HWND;
 procedure WMCOPY(var Message: TMessage);message  WM_DRAWCLIPBOARD;

uses clipbrd;

procedure TForm1.WMCOPY(var Message: TMessage);
begin
 beep;
 if Clipboard.HasFormat(CF_TEXT) then Caption:= Clipboard.AsText
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 NH:=  SetClipboardViewer(Form1.Handle);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 ChangeClipboardChain(Form1.Handle,NH);
end;


А как получить выделенный текст из другого окна?


 
Fay ©   (2006-01-18 06:53) [3]

2 HWND   (18.01.06 2:21) [2]
А где обработка WM_CHANGECBCHAIN?


 
Rouse_ ©   (2006-01-18 15:01) [4]


> Спасибо, это я сделал:

Если уж делать, то хотябы вот так:

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
 private
   hwndNextViewer: THandle;
   procedure WMChangeCbChain(var Message: TWMChangeCBChain); message WM_CHANGECBCHAIN;
   procedure WMDrawClipboard(var Message: TMessage); message WM_DRAWCLIPBOARD;
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 // Add the window to the clipboard viewer chain.
 hwndNextViewer := SetClipboardViewer(Handle);
end;

procedure TForm1.WMChangeCbChain(var Message: TWMChangeCBChain);
begin
 with Message do
 begin

   // If the next window is closing, repair the chain.
   if Remove = hwndNextViewer then
     hwndNextViewer := Next

   // Otherwise, pass the message to the next link.
   else
     if hwndNextViewer <> 0 then
       SendMessage(hwndNextViewer, Msg, Remove, Next);
 end;
end;

// clipboard contents changed.
procedure TForm1.WMDrawClipboard(var Message: TMessage);
begin
 // Pass the message to the next window in clipboard
 // viewer chain.
 with Message do
   SendMessage(hwndNextViewer, Msg, WParam, LParam);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
 ChangeClipboardChain(Handle, hwndNextViewer);
end;

end.

> А как получить выделенный текст из другого окна?


Выделить буффер и послать ему WM_GETTEXT



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

Текущий архив: 2006.04.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.046 c
10-1116491301
_Max
2005-05-19 12:28
2006.04.09
Копирование в Word`е


15-1142509298
PTaXa
2006-03-16 14:41
2006.04.09
Фильтр


15-1142449191
TStas
2006-03-15 21:59
2006.04.09
Как устроен клавиатурный шпион?


3-1140170790
LostDelpher
2006-02-17 13:06
2006.04.09
Можно ли прочитать данные из Грида в чужом приложении


6-1134405504
WebSQLNeeder
2005-12-12 19:38
2006.04.09
Как сделать что бы яваскрипт определял TWebBrouser не как ИЕ