Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.27;
Скачать: CL | DM;

Вниз

RegisterHotKey   Найти похожие ветки 

 
anod ©   (2002-04-28 00:13) [0]

Тут возникла пара вопросов:
Нужно отлавливать 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, код второй клавиши);


 
Song ©   (2002-04-28 10:03) [1]

http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1019906284&n=0


 
anod ©   (2002-04-28 11:19) [2]

2Song
Спасибо, это впринцыпе и в хелпе было написано, просто уточнить.

А что насчет:


> Как мне из THotKey засунуть сочетание в формат типа string
> (чтоб сохранять настройки), а из него в RegisterHotKey.



 
anod ©   (2002-04-28 11:21) [3]

Упс, в принципе.


 
Song ©   (2002-04-28 15:09) [4]

ShortCut() Вам поможет


 
anod ©   (2002-04-28 19:14) [5]

При загрузке деляю так:

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 21:54) [6]

А что такое var Msg : TWMHotKey ???

procedure TForm1.WMHotKey(Var Msg:TMessage);
Begin
For i:= 1 to 5 Do IF ShortCutToText(Msg.LParamHi)=hotkeys[i] then ...


 
фтщв   (2002-04-29 00:19) [7]

Спасибо, я уже нашел.

Это я выдрал из какого-то примера. Там это работало.


 
anod ©   (2002-04-29 00:20) [8]

фтщв - anod



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

Текущий архив: 2002.06.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.009 c
7-89050
Advokat
2002-04-01 21:35
2002.06.27
Ctr+Alt+Del в 98 и чтобы в 2к не было глюков


1-88842
Ricks
2002-06-17 14:39
2002.06.27
Использование


1-88798
.: Joiro :.
2002-06-16 18:36
2002.06.27
Обращение к нескольким елементам сразу. Как?


14-88992
Malder
2002-05-18 22:03
2002.06.27
Почему нельзя создать файл AUX ?


14-89012
MaximatorVeter
2002-05-21 19:47
2002.06.27
Как стать Билл Гейтсом?