Вниз
Скачать: CL | DM;

Горячие клавишы   Найти похожие ветки 

← →
TerminalHead   (2005-08-04 09:44) [0]

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

//В обработчике события 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;


← →
Digitman ©   (2005-08-04 09:47) [1]


> без формы


??

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


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


это как ?


← →
Digitman ©   (2005-08-04 09:52) [2]

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

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

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


← →
evvcom ©   (2005-08-04 09:53) [3]

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



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.021 c
1-1122271364
Korvet
2005-07-25 10:02
2005.08.21
Как сделать таймер из Label


3-1121071009
bendela
2005-07-11 12:36
2005.08.21
ado+ms Access редактирование записи


14-1122887902
Ega23
2005-08-01 13:18
2005.08.21
С днем рождения! 1 августа


4-1119846375
leonidus
2005-06-27 08:26
2005.08.21
Как отследить двойное нажатие клавиши Shift


14-1122444445
syte_ser78
2005-07-27 10:07
2005.08.21
Где AVG хранит свои базы?




   Наверх