Как сохранить текст из буфера обмена в файл

Тема в разделе "Delphi", создана пользователем WinHack, 27 ноя 2016.

  1. WinHack
    Если Вы хотите сохранить текстовые данные, которые содержатся в буфере обмена (Clipboard) в файл на диске, то Вы можете использовать следующий код:

    Код:
    uses Clipbrd;
    
     function ClipboardTxtToFile
              (sFileTXT : string) : boolean;
     var
        ps1, ps2 : PChar;
        dwLen : DWord;
        tf : TextFile;
        hData : THandle;
     begin
       Result := False;
       with Clipboard do begin
        try
         Open;
          if(HasFormat(CF_TEXT)) then begin
           hData := GetClipboardData(CF_TEXT) ;
           ps1 := GlobalLock(hData) ;
           dwLen := GlobalSize(hData) ;
           ps2 := StrAlloc(1 + dwLen) ;
           StrLCopy( ps2, ps1, dwLen ) ;
           GlobalUnlock( hData ) ;
    
           AssignFile(tf, sFileTXT) ;
           ReWrite(tf) ;
           Write(tf, ps2) ;
           CloseFile(tf) ;
    
           StrDispose( ps2 ) ;
           Result := True;
          end;
         finally
          Close;
        end;
       end;
     end;
    Пример Использования.

    Код:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      ClipboardTxtToFile('D:\text.txt')
    end;