Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Горячие клавищи [D6, D7, Win95/98, WinXP]


Лариса ©   (2004-12-07 12:11:00) 

Здравствуйте программеры!
Подскажите, пожалуйста, как мне сделать чтоб горячие клавищи моего приложения работали даже тогда когда мое окно не активно, или сидит в трее.
Зараннее благодарна.


Leonid Troyanovsky   (2004-12-07 20:38:00) [1]


> Digitman ©   (07.12.04 15:32) [15]

> This function cannot associate a hot key with a window created
> by another thread


Ну, дык планировалось-то снабдить оным свое приложение,
поэтому вставиться в нужный поток проблем нет.

--
С уважением, LVT.


Digitman   (2004-12-07 15:32:00) [2]


> Спасибо


This function cannot associate a hot key with a window created by another thread

!!!


Лариса   (2004-12-07 14:33:00) [3]

Спасибо мальчики! :)


Leonid Troyanovsky   (2004-12-07 14:21:00) [4]


> Лариса   (07.12.04 13:43) [7]
> Мне надо чтобы в моем приложении по нажатию определенных
> клавищ сделать паузу, т.е. остановить в моей программе таймер


The RegisterHotKey function defines a system-wide hot key.

Т.е., регистрируешь его, а в обработчике своей формы

procedure WMHotKey (var msg: TWMHotKey); message WM_HOTKEY;

делаешь нужную работу.

--
С уважением, LVT.


Sphinx   (2004-12-07 14:20:00) [5]

http://delphimaster.ru/cgi-bin/faq.pl?look=1&id=988621066&n=15
http://delphimaster.ru/cgi-bin/faq.pl?look=1&id=988621797&n=15
http://delphimaster.ru/cgi-bin/forum.pl?id=1101719727&n=5

за две минуты на этом форуме :)
а что будет если подключить Яндекс? ;)


Leonid Troyanovsky   (2004-12-07 14:17:00) [6]


> Vit@ly ©   (07.12.04 13:14) [3]
> А если Ваши горячие клавиши сидят в таком же, похожем на
> Ваше (прикладном) приложение? Что делать в этом случае?
> Кому отдать приоритет?


This function cannot associate a hot key with a window created by another thread.

RegisterHotKey fails if the keystrokes specified for the hot key have already been registered by another hot key.

If the window identified by the hWnd parameter already registered a hot key with the same identifier as that specified by the id parameter, the new values for the fsModifiers and vk parameters replace the previously specified values for these parameters.

--
С уважением, LVT.


Digitman   (2004-12-07 14:12:00) [7]


> Лариса   (07.12.04 13:43) [7]
> Мне надо чтобы в моем приложении по нажатию определенных
> клавищ


по-чукотски задачу ставишь - по-чукотски и рекомендацию получаешь.

твой вопрос д.б. прозвучать так :

"я хочу, чтобы при  нажатии опред. клавиши или опред.комбинации клавиш мое приложение получало извещение об этом, с инф-цией о кодах, ВНЕ зависимости от того, какое окно в этот момент имеет фокус ввода"


Лариса   (2004-12-07 14:07:00) [8]

Sphinx   (07.12.04 14:02) [8]

если пример есть дай пожалуйста, буду благодарна


Sphinx   (2004-12-07 14:02:00) [9]

> Лариса   (07.12.04 13:43) [7]

Так Вам про это и говорят. Поставте хук на клавиатуру (в соседней ветке WinAPI кажется даже где-то пример был) и считывайте нажатие клавишь.

> Передавать хук в ручную или система сама отследит?

Передавать вручную, система сама не отслеживает.


Лариса   (2004-12-07 13:43:00) [10]

Мне надо чтобы в моем приложении по нажатию определенных клавищ сделать паузу, т.е. остановить в моей программе таймер


chelovek   (2004-12-07 13:27:00) [11]

Передавать хук в ручную или система сама отследит?
Надо попробовать.


TUser   (2004-12-07 13:23:00) [12]


> Кажется кто последний зарегистрировал тот и получит управление,
> но при регистрации вернет ли управление тому у кого было
> зарегистрировано раньше?

Хуки выстраиваются в цепочку. Добрые программисты передают управление следующему хуку


chelovek   (2004-12-07 13:20:00) [13]

Кажется кто последний зарегистрировал тот и получит управление, но при регистрации вернет ли управление тому у кого было зарегистрировано раньше?


Vit@ly   (2004-12-07 13:14:00) [14]

А если Ваши горячие клавиши сидят в таком же, похожем на Ваше (прикладном) приложение? Что делать в этом случае? Кому отдать приоритет?


chelovek   (2004-12-07 13:11:00) [15]

Знаб только что надо регистрировать горячую клавишу в системе:
RegisterHotKeyа при выходе программы разрегистрировать:
UnregisterHotKey.


Лариса   (2004-12-07 12:47:00) [16]

неужели никто не знает?


Наверх

Титульная страница Поиск, карта сайта Написать письмо