(page requirements)

How to save clipboard data to a file

Looking for a way to save the data in the clipboard to a file in a hurry? All you have to do is call the following SaveClipboardTextDataToFile() function with the file name:

SaveClipboardTextDataToFile( 'c:\temp.txt' );

Please note that the following code is written to handle only text data in the clipboard. You can easily change this by modifying the clipboard data format specified -- CF_TEXT -- and changing the file handling methods.

function SaveClipboardTextDataToFile(
  sFileTo : 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, sFileTo );
        ReWrite( tf );
        Write( tf, ps2 );
        CloseFile( tf );

        StrDispose( ps2 );

        Result := True;
      end;
    finally
      Close;
    end;
  end;
end;

Don't forget to include Clipbrd unit in your uses section.

 
 
Applicable Keywords : Delphi, Delphi 2.x, Functions, Win32
 
 
 
Copyright © 2009 Chami.com. All Rights Reserved. | Advertise | Created in HTML Kit editor