Добавление текста в буфер обмена без использования Clipbrd

Delphi FAQ >> Операционная система

Данная функция на Delphi копирует указанный текст в буфер обмена без использования модуля Clipbrd.

{
 Wnd — Handle окна, получающего доступ к буферу обмена,
 может быть Application.Handle или Form.Handle
 Value — текст, помещаемый в буфер обмена
}
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;


Если вам нужна хорошая работа в Екатеринбурге, то посетите указанный сайт — вы сможете просмотреть текущие вакансии а также разместить свое резюме.