Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Просмотр буфера обмена

Delphi , ОС и Железо , Буфер обмена

Просмотр буфера обмена


unit ClipboardViewer;

interface

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

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    FNextViewerHandle: THandle;
    procedure WMDrawClipboard(var message: TMessage);
      message WM_DRAWCLIPBOARD;
    procedure WMChangeCBCHain(var message: TMessage);
      message WM_CHANGECBCHAIN;
  public
  end;

var
  Form1: TForm1;

implementation
{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
  // Проверяем работоспособность функции.
  // При невозможности просмотра буфера обмена
  // функция возвратит значение Nil.
  FNextViewerHandle := SetClipboardViewer(Handle);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  // Восстанавливаем цепочки.
  ChangeClipboardChain(Handle, FNextViewerHandle);
end;

procedure TForm1.WMDrawClipboard(var message: TMessage);
begin
  // Вызывается при любом изменении содержимого буфера обмена
  message.Result := SendMessage(WM_DRAWCLIPBOARD, FNextViewerHandle, 0, 0);
end;

procedure TForm1.WMChangeCBCHain(var message: TMessage);
begin
  // Вызывается при любом изменении цепочек буфера обмена.
  if message.wParam = FNextViewerHandle then
  begin
    // Удаляем следующую цепочку просмотра. Корректируем внутреннюю переменную.
    FNextViewerHandle := message.lParam;
    // Возвращаем 0 чтобы указать, что сообщение было обработано
    message.Result := 0;
  end
  else
  begin
    // Передаем сообщение следующему окну в цепочке.
    message.Result := SendMessage(FNextViewerHandle, WM_CHANGECBCHAIN,
      message.wParam, message.lParam);
  end;
end;

end.

Пример программирования на языке Delphi, демонстрирующий создание формы для просмотра содержимого системного буфера обмена. Форма использует функции Windows API для установки себя как просмотрщика буфера обмена и получения уведомлений о изменении содержимого буфера обмена.

Содержание кода:

  1. Процедура FormCreate: Вызывается при создании формы. Она устанавливает форму как просмотрщик буфера обмена с помощью функции SetClipboardViewer.
  2. Процедура FormDestroy: Вызывается при уничтожении формы. Она удаляет форму из цепочки просмотрщиков буфера обмена с помощью функции ChangeClipboardChain.
  3. Процедура WMDrawClipboard: Обработчик сообщения, вызываемый при изменении содержимого буфера обмена. Он отправляет сообщение WM_DRAWCLIPBOARD следующему окну в цепочке просмотрщиков буфера обмена, что позволяет другим окнам получать обновленное содержимое буфера обмена.
  4. Процедура WMChangeCBCHain: Обработчик сообщения, вызываемый при изменении цепочки просмотрщиков буфера обмена. Если сообщение относится к этой форме (т.е., ее handle совпадает с переменной FNextViewerHandle), она обновляет переменную FNextViewerHandle, указывая на следующее окно в цепочке, и возвращает 0, чтобы указать, что сообщение было обработано. В противном случае она отправляет сообщение следующему окну в цепочке с помощью функции SendMessage.

Код использует следующие функции Windows API:

  • SetClipboardViewer: Устанавливает окно как просмотрщик буфера обмена.
  • ChangeClipboardChain: Изменяет цепочку просмотрщиков буфера обмена, удаляя текущее окно и добавляя новое.
  • SendMessage: Отправляет сообщение окну.
  • WM_DRAWCLIPBOARD: Сообщение, отправляемое при изменении содержимого буфера обмена.
  • WM_CHANGECBCHAIN: Сообщение, отправляемое при изменении цепочки просмотрщиков буфера обмена.

Код также использует следующие функции Delphi:

  • Класс TForm: Класс формы в Delphi.
  • Тип THandle: Handle к окну или другому объекту.
  • Функция SendMessage: Отправляет сообщение окну.
  • Префикс WM_: Показывает, что сообщение является Windows-сообщением.

В целом, этот код демонстрирует создание простого просмотрщика буфера обмена с помощью Delphi и Windows API.

Просмотр буфера обмена - это пример программирования на языке Delphi, демонстрирующий функционирование просмотра содержимого буфера обмена в Windows-приложении.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Буфер обмена ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-10-24 20:03:23/0.0036101341247559/0