Moin Jens,
ja hab' ich.
Sozusagen "zu Fuss", also einfach mit den zugrundeliegenden
API-Funktionen:
Delphi-Quellcode:
function StringToClipboard(const AsString : string) : integer;
var
hMem : cardinal;
pMem : PChar;
begin
Result := ERROR_SUCCESS;
if not OpenClipboard(0) then begin
Result := GetLastError;
exit;
end;
try
if not EmptyClipboard then begin
Result := GetLastError;
exit;
end;
hMem := GlobalAlloc(GMEM_MOVEABLE,Length(AsString)+1);
if hMem = 0 then begin
Result := GetLastError;
exit;
end;
pMem := GlobalLock(hMem);
if pMem = nil then begin
Result := GetLastError;
exit;
end;
try
CopyMemory(pMem,PChar(AsString+#00),Length(AsString)+1);
finally
if not GlobalUnlock(hMem) then Result := GetLastError;
end;
if SetClipboardData(CF_TEXT,hMem) = 0 then begin
Result := GetLastError;
exit;
end;
finally
if not CloseClipboard then Result := GetLastError;
end;
end;
Sollte so funktionieren, aber schau Dir auf jeden Fall auch mal im
MSDN die jeweiligen
API-Funktionen an.
Die Funktion ist über 2 Jahre alt, und könnte vielleicht mal überarbeitet werden