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;