Добавление текста в буфер обмена без использования модуля Clipbrd
01.01.2007
{ **** UBPFD *********** by kladovka.net.ru **** >> Добавление текста в буфер обмена без использования модуля Clipbrd Wnd - Handle окна, получающего доступ к буферу обмена, может быть Application.Handle или Form.Handle Value - текст, помещаемый в буфер обмена Зависимости: Windows Автор: Dimka Maslov, mainbox@endimus.ru, ICQ:148442121, Санкт-Петербург Copyright: Dimka Maslov Дата: 22 августа 2002 г. ********************************************** } 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;