![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| _8989 |
|
|||
|
Unregistered |
Здравствуйте!
Помогите зарегистрировать комбинацию клавишь или одну горячую клавишу. Программа записывает в реестр комбинацию клавишь или одну горячую клавишу (в зависимости от выбора юзера) в виде DWORD-параметра. Позже считывает и заносит в переменную wHotKey (word). Вопрос, как теперь зарегистрировать с помощью функции RegisterHotKey комбинацию клавишь или одну горячую клавишу? Я думал MAKEWORD мне поможет, но не вышло:
Помогите!!! |
|||
|
||||
| Gloomy |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 7.10.2003 Где: England Репутация: 1 Всего: 1 |
Я писал небольшую статейку тут.
З.Ы. Это не реклама! Просто не хочу переписывать одно и то же еще раз. |
|||
|
||||
| _8989 |
|
|||
|
Unregistered |
Статью прочитал. Это всё понятно, но вопрос-то в другом...
|
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
_8989 Вот тебе примерчик:
Видимо ты не то значение передавал в 3-ий параметр функции - MAKEWORD(0, wHotKey) -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| _8989 |
|
|||
|
Unregistered |
Последний параметр (WordRec(scShiftA).Lo) распознаеться легко, а нужно распознать и первый (MOD_SHIFT). А в твоем примере прямо подставляеться первый параметр. А если пользователь ввёл не SHIFT, а SHIFT+ALT? Мне нужно распознать оба параметра!
|
|||
|
||||
| <Spawn> |
|
||||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Тогда можешь поступить одним из следующих способов:
или
Это сообщение отредактировал(а) <Spawn> - 15.11.2003, 13:20 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
||||
|
|||||
| <Spawn> |
|
||||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Если же ты будешь использовать комбинации типа Shift + Ctrl, то маленько переделать этот код нужно будет, например так:
А потом в WM_HOTKEY сравнивать с этим Modifier:
Это сообщение отредактировал(а) <Spawn> - 15.11.2003, 13:24 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
||||
|
|||||
| _8989 |
|
|||
|
Unregistered |
Дело в том, что не я буду устанавливать комбинацию клавишь, а пользователь. А что он поставит - не знает и Бог.
|
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
_8989 ну я же показал тебе как нужна сделать. Вот более полный пример:
Клик на Button1 решистрирут новый Хоткей, клик на Button2 делает обратное действие. HotKey вводится в hkUserKey(компонент THotKey) Это сообщение отредактировал(а) <Spawn> - 15.11.2003, 13:46 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Vex |
|
|||
![]() кацапосрачмученiкъ ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3103 Регистрация: 28.3.2002 Где: strawberry fields Репутация: 1 Всего: 88 |
8989, я писал для себя подобную программку для открывагния папок по горячим клавишам, если хочешь, я тебе дам исходники. У меня там правда сочетания запоминаются в текстовый файл. И код написан коряво.
-------------------- Слава Україні. |
|||
|
||||
| _8989 |
|
|||
|
Unregistered |
Здесь WordRec(wHotKey).Lo считывается нормально, а Modifiers не распознаёться. Что не так? P.S. Программа пишеться без использования VCL. |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
_8989 Попробуй сделать Modifiers: = 0;
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| _8989 |
|
|||
|
Unregistered |
Бесполезно!
|
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Тогда, скорее всего, в wHotKey используются другие биты для идентификации нажатия Ctrl, Alt и т.д.
Это сообщение отредактировал(а) <Spawn> - 17.11.2003, 16:36 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| _8989 |
|
|||
|
Unregistered |
2Vex
Представь свой код здесь, пожалуйста. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |