Как скопировать текст в буфер обмена без использования модуля Clipbrd?
function SetClipboardText( Wnd: HWND; Value: string ): boolean;
var
hData: HGlobal;
pData: pointer;
Len: integer;
begin
Result := true;
if OpenClipboard( Wnd ) then
begin
try
Len := Length( Value ) + 1;
hData := GlobalAlloc( GMEM_MOVEABLE or GMEM_DDESHARE, Len );
try
pData := GlobalLock( hData );
try
Move( PChar( Value )^, pData^, Len );
EmptyClipboard;
SetClipboardData( CF_Text, hData );
finally
GlobalUnlock( hData );
end;
except
GlobalFree( hData );
raise
end;
finally
CloseClipboard;
end;
end
else
Result := false;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SetClipboardText( Handle, 'qwerty' );
end;
|