Показать сообщение отдельно
  #1  
Старый 02.06.2010, 14:21
Аватар для NekitoSSSS
NekitoSSSS NekitoSSSS вне форума
Начинающий
 
Регистрация: 02.05.2009
Адрес: Башкортостан, г.Благовещенск
Сообщения: 142
Версия Delphi: XE
Репутация: 13
По умолчанию Хендл консольного окна

есть простейшее консольное приложение
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  windows,sysutils;
procedure CopyStringToClipboard(s: string);
var
  hg: THandle;
  P: PChar;
begin
  hg:=GlobalAlloc(GMEM_DDESHARE or GMEM_MOVEABLE, Length(S)+1);
  P:=GlobalLock(hg);
  StrPCopy(P, s);
  GlobalUnlock(hg);
  OpenClipboard(Application.Handle);
  SetClipboardData(CF_TEXT, hg);
  CloseClipboard;
  GlobalFree(hg);
end;

begin
  CopyStringToClipboard('lol');
  Writeln('OK');
  Readln;
end.

но оно даже не компилируется, ругается на строку
OpenClipboard(Application.Handle);

то есть я понимаю тут к хендлу окна прикрепляем открытый буфер обмена... но как это исправить? Без добавления модуля Forms естесно, как узнать handle консольного окна?!
p.s. код копирования в буфер взят из
http://www.delphisources.ru/pages/fa...clipboard.html
но всетаки заголовок той статьи не соответствует коду......
Ответить с цитированием