Получение текста из буфера обмена без использования модуля Clipbrd

Материал из DRKB

Получение текста из буфера обмена без использования модуля Clipbrd[править | править код]

{ **** UBPFD *********** by kladovka.net.ru ****
>> Получение текста из буфера обмена без использования модуля Clipbrd

Wnd - Handle окна, получающего доступ к буферу обмена;
Str - строка, в которую будет скопирован текст;

Зависимости: Windows

Copyright:   Dimka Maslov
Дата:        22 августа 2002 г.
********************************************** }

function GetClipboardText(Wnd: HWND; var Str: string): Boolean;
var
  hData: HGlobal;
begin
  Result := True;
  if OpenClipboard(Wnd) then
  begin
    try
      hData := GetClipboardData(CF_TEXT);
      if hData <> 0 then
      begin
        try
          SetString(Str, PChar(GlobalLock(hData)), GlobalSize(hData));
        finally
          GlobalUnlock(hData);
        end;
      end
      else
        Result := False;
      Str:=PChar(@Str[1]);
    finally
      CloseClipboard;
    end;
  end
  else
    Result := False;
end;


Пример использования:

function TForm1.Button2Click(Sender: TObject)
var
  Str: string;
begin 
  GetClipboardText(Handle, Str);
  ShowMessage(Str);
end;


ID: 01906