Форум: "Основная";
Текущий архив: 2002.09.12;
Скачать: [xml.tar.bz2];
ВнизКак зарегистрировать гарячие клавиши в приложении??? Найти похожие ветки
← →
Mazenrat (2002-08-31 15:40) [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);
← →
Mazenrat (2002-08-31 18:53) [1]Не знаем???
← →
CrazyAngel (2002-08-31 18:59) [2]?-)
Написать хук на перехват нажатия клавиши и выбирать те сочетания клавиш которые тебе нравятся
Про хуки было в FAQ :)
← →
Mazenrat (2002-08-31 19:30) [3]
> Написать хук на перехват нажатия клавиши и выбирать те сочетания
> клавиш которые тебе нравятся
> Про хуки было в FAQ :)
Глупости!
Если можно зарегистрировать в системе свои горячие клавишы с помощью VCL приложения, то это же можно сделать с помощью API приложения. Не знаеш - не советуй!
← →
Mazenrat (2002-08-31 19:31) [4]
> Написать хук на перехват нажатия клавиши и выбирать те сочетания
> клавиш которые тебе нравятся
> Про хуки было в FAQ :)
Глупости!
Если можно зарегистрировать в системе свои горячие клавишы с помощью VCL приложения, то это же можно сделать с помощью API приложения без всяких хуков. Не знаеш - не советуй!
← →
CrazyAngel (2002-08-31 19:32) [5]Хочешь сказать работать не будет ?
← →
CrazyAngel (2002-08-31 19:38) [6]Если не нравится посмотри как это в HotKeyManager сделано помоему это то что ты ищешь ...
← →
Mazenrat (2002-08-31 19:38) [7]
> Если не нравится посмотри как это в HotKeyManager сделано
> помоему это то что ты ищешь ...
Где смотреть?
← →
CrazyAngel (2002-08-31 19:39) [8]В поиске ссылка.
← →
Юрий Зотов (2002-09-01 11:31) [9]> Mazenrat (31.08.02 19:31)
Не такие уж и глупости.
> Если можно зарегистрировать в системе свои горячие клавишы с
> помощью VCL приложения, то это же можно сделать с помощью API
> приложения без всяких хуков
Да, можно. Если в программе есть хотя бы одно окно (пусть даже и невидимое - неважно, лишь бы оно было).
Если же ни одного окна нет... то что передавать в первом параметре RegisterHotKey? И в какую оконную функцию должно приходить WM_HOTKEY?
А вот хук позволяет обойтись без всяких окон. Так что - не такие уж и глупости.
← →
Mazenrat (2002-09-01 11:58) [10]Хук - слишком хлопотно, да и размер программы увеличится.
← →
Беня Ладен (2002-09-02 01:07) [11]Гарачии Клавищи как и горачии парни не могут
быть зарегестрированны... (кавказкая мудрость).
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.09.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c