Форум: "WinAPI";
Текущий архив: 2002.10.17;
Скачать: [xml.tar.bz2];
ВнизКак зарегистрировать гарячие клавиши в приложении??? Найти похожие ветки
← →
Mazenrat (2002-08-31 16:51) [0]Добрый день.
Как зарегистрировать гарячие клавиши в приложении, не имеющего формы (Win32API)?
Горячие клавиши (shortcuts) должны быть доступны даже если на данный момент активна другая программа (как это делает аська). Я пытался сделать следующим образом (см. ниже) но у приложения не имеющего формы невозможно сделать это:
protected
procedure hotykey(var msg:TMessage); message WM_HOTKEY;
end;
Как мне быть?
Или можно как-то по-другому?
Вот код:
//Переменные
var
hWnd: THandle;
id,id2:Integer;
//Процедура выполнения команд по нажатию горячих клавиш
procedure hotykey(var msg:TMessage);
begin
if (msg.LParamLo=MOD_CONTROL) and (msg.LParamHi=81) then begin
ShellExecute(hwnd, "open", "calc.exe", nil, nil, sw_shownormal); end;
if (msg.LParamLo=MOD_CONTROL) and (msg.LParamHi=82) then begin
ShellExecute(hwnd, "open", "calc.exe", nil, nil, sw_shownormal); end;
end;
//При создании приложения:
id:=GlobalAddAtom("hotkey");
RegisterHotKey(hWnd,id,mod_control,81);
id2:=GlobalAddAtom("hotkey2");
RegisterHotKey(hWnd,id2,mod_control,82);
//При уничтожении приложения:
UnRegisterHotKey(hWnd,id);
UnRegisterHotKey(hWnd,id2);
← →
Mirovodin (2002-09-02 14:13) [1]Я именно так и регистрировал, все работает, можешь посмотреть в программе FreeMemory (www.hcsoft.spb.ru)
hWnd := CreateWindow("Название", "", 0, 0, 0, 0, 0, 0, 0, hInstance, Nil);
...
ShowWindow(hWnd, SW_HIDE);
...
у меня основное окно не видимо.
RegisterHotKey(hWnd, CM_ACTIVE, MOD_ALT + MOD_CONTROL, 123);
RegisterHotKey(hWnd, CM_INFO, MOD_ALT + MOD_CONTROL, 122);
А в обработчике :
Function WindowProc(hWnd: THandle; uMsg, wParam, lParam: Integer): Integer; Stdcall; Export;
Begin
Result := 0;
Case uMsg Of
...
WM_HOTKEY:
Begin
Case wParam Of
CM_INFO: ...
CM_ACTIVE: ...
...
и в
WM_DESTROY:
Begin
UnregisterHotKey(hWnd, CM_ACTIVE);
UnregisterHotKey(hWnd, CM_INFO);
...
Перехватыевает да же если мое приложение не активно.
← →
Song (2002-09-02 14:45) [2]На sources.ru тебе популярно ответили. Что ещё не понятно? >:(
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.10.17;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.011 c