Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Горячие клавишы [D1, D2, D3, D4, D5, D6, D7, Win95/98, WinME, NT4, Win2k, WinXP]


TerminalHead ©   (2005-08-04 09:44:00) 

Мне нужно назначить горячие клавишы для моего приложения - консольная программа без формы, должна быть сервисом.
Пока что никак не могу понять куда это все написать чтобы оно работало, до этого в программах с формой применял этот код, но тут все по другому...
Помогите пожалуйста

//В обработчике события OnCreate
//основной формы создаём горячую клавишу:

if not RegisterHotkey(Handle, 1, MOD_ALT or MOD_SHIFT, VK_F9) then
 ShowMessage('Unable to assign Alt-Shift-F9 as hotkey.');

//В событии OnClose удаляем горячую клавишу:
UnRegisterHotkey( Handle, 1 );

//Добавляем обработчик в форму для сообщения
//WM_HOTKEY:

private // в секции объявлений формы
 procedure WMHotkey( var msg: TWMHotkey ); message WM_HOTKEY;

procedure TForm1.WMHotkey( var msg: TWMHotkey );
begin
 if msg.hotkey = 1 then
 begin
   if IsIconic( Application.Handle ) then
     Application.Restore;
   BringToFront;
 end;
end;


evvcom   (2005-08-04 09:53:00) [1]

А нас в первом классе учили: "Жи-ши пиши с буквой 'и'!"


Digitman   (2005-08-04 09:52:00) [2]

если программа не создает никаких окон, то регистрация гор.клавиши должна осуществляться по иному :

if not RegisterHotkey( 0, ..) then ..

в этом случае сообщение WM_HOTKEY будет посылаться системой в очередь сообщений того трэда, который вызывал ф-цию RegisterHotkey() ... и трэд этот, соответственно, должен организовать цикл ожидания/выборки/диспетчеризации адресованых ему сообщений, в т.ч. и WM_HOTKEY


Digitman   (2005-08-04 09:47:00) [3]


> без формы


??

А TForm1 это что ? Не форма ли как раз ?


> консольная программа .. должна быть сервисом


это как ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо