Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Буфер клавиатуры

2.2K
27 ноября 2002 года
Phantom
7 / / 25.10.2002
Есть программа, работает в фоновом режиме. На какое-то событие в программе генерируеться AnsiString строка. Нужно как-то эту строку символов передать некому активному в данный момент окну, например в блокнот. Как это сделать?
Заранее спасибо.
2.1K
30 ноября 2002 года
Relort
24 / / 30.11.2002
Привет!

А для чего ты хочешь передать строку?
Если для вставки, то на Delphi это выглядит так.

Не претендую на полноту ответа: код работает только с блокнотом.

procedure TForm1.TimerTimer(Sender: TObject);
var
wnd: HWND;
hg: THandle;
P: PChar;
begin
{ Edit1.Text - передаваемая строка }
{ копирование строки в буффер }
hg:=GlobalAlloc(GMEM_DDESHARE or GMEM_MOVEABLE, Length(Edit1.Text)+1);
P:=GlobalLock(hg);
StrPCopy(P, Edit1.Text);
GlobalUnlock(hg);
OpenClipboard(Application.Handle);
SetClipboardData(CF_TEXT, hg);
CloseClipboard;
GlobalFree(hg);
{ активное окно }
wnd := GetForegroundWindow;
{ отправить сообщение окну о необходимости }
{ провести вставку }
SendMessage(GetTopWindow(wnd), WM_PASTE, 0, 0);
end;
8.4K
18 апреля 2005 года
Reshetnyak
19 / / 02.12.2004
Всем привет!

У меня в свою очередь возник вопрос - как мне записать клавишу пробел (или какую-то другую в буфер клавиатуры). У меня консольная программка, написанная на C++. Из под этой программки стартует другая и в конце ожидает нажатие клавиши. Вот только пока не нашел, как в этот самый буфер записать что-то.

Заранее благодарен!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог