![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
RegisterHotKey [D6, Win2k]
anod © (2002-04-28 00:13:00)Тут возникла пара вопросов:
Нужно отлавливать 5 сочетаний клавиш, устанавливыемых пользователем.
1. Можно ли с помощью RegisterHotKey устанавливать сразу несколько HOOk"ов
2. Как мне из THotKey засунуть сочетание в формат типа string (чтоб сохранять настройки), а из него в RegisterHotKey.
Я так понимаю надо извлечь из THotKey 1 часть сочетания (ctrl, alt , shift ) и 2часть (F1..F12,A..Z,0..1);
Я так себе представляю:
RegisterHotKey(Form1.handle, код второй клавиши , MOD_CONTROL, код второй клавиши);
anod (2002-04-29 00:20:00) [1]фтщв - anod
фтщв (2002-04-29 00:19:00) [2]Спасибо, я уже нашел.
Это я выдрал из какого-то примера. Там это работало.
Song (2002-04-28 21:54:00) [3]А что такое var Msg : TWMHotKey ???
procedure TForm1.WMHotKey(Var Msg:TMessage);
Begin
For i:= 1 to 5 Do IF ShortCutToText(Msg.LParamHi)=hotkeys[i] then ...
anod (2002-04-28 19:14:00) [4]При загрузке деляю так:
for i:= 1 to 5 do hotkeys[i]:=reg.ReadString("hotkey"+IntTosTr(i));
if reg.ReadBool("usehkey") then begin
UseHKeyCB.Checked:=true;
for i:= 1 to 5 do begin
ShortCutToKey(TextToShortCut(hotkeys[i]),key,shState);
if ssAlt in shState then RegisterHotKey(Form1.Handle,GlobalAddAtom(PChar("dlhotkey"+IntTostr(i))),MOD_ALT,key);
if ssCtrl in shState then RegisterHotKey(Form1.Handle,GlobalAddAtom(PChar("dlhotkey"+IntTostr(i))),MOD_CONTROL,key);
end;
А сообщение отсележиваю так:
procedure TForm1.WMHotKey (var Msg : TWMHotKey);
var i:integer; h:HWND;
begin
for i:= 1 to 5 do
if ShortCutToText(Msg.HotKey) = hotkeys[i] then
begin
if ShellExecute(h, "explore", PCHAR(d[i]), nil, nil, SW_SHOW) < 32 then
ShowMessage("
Song (2002-04-28 15:09:00) [5]ShortCut() Вам поможет
anod (2002-04-28 11:21:00) [6]Упс, в принципе.
anod (2002-04-28 11:19:00) [7]2Song
Спасибо, это впринцыпе и в хелпе было написано, просто уточнить.
А что насчет:
> Как мне из THotKey засунуть сочетание в формат типа string
> (чтоб сохранять настройки), а из него в RegisterHotKey.
Song (2002-04-28 10:03:00) [8]http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1019906284&n=0