![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| CynicRus |
|
||||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 248 Регистрация: 31.5.2012 Репутация: 1 Всего: 5 |
Приветствую уважаемых форумчан. Пишу средство автоматизации написания скрипта для AutoIt (типа Script writter). Соответственно мне нужно определить, какая именно клавиша была нажата. Код клавиш я ловлю без проблем, но следующим этапом мне нужно определить именно значение этой клавиши по коду. В зависимости от раскладки. Пробую я делать это следующим способом:
но при таком подходе в результате я получаю клавишу в той раскладке, которая была при запуске процедуры. Тоесть если первой была английская раскладка то я получаю:
Затем меняю раскладку на русскую, пишу тест и в результате получаю:
вместо тест. Вот собственно вопрос, как же определить какая клавиша была нажата в зависимости от текущей раскладки клавиатуры? PS: на всяrий случай приваожу процедуру хука клавиш:
Это сообщение отредактировал(а) CynicRus - 14.4.2013, 13:00 |
||||||||
|
|||||||||
| Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: нет Всего: 7 |
Я так понял, ты символьный код ловишь, лучше скан-код клавиши ловить.
http://ru.wikipedia.org/wiki/Скан-код тута и таблица -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
| CynicRus |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 248 Регистрация: 31.5.2012 Репутация: 1 Всего: 5 |
Я ловлю и символьный и скан-код. Однако, как я понял из вашего ответа - вы предлагаете ловить скан-код и руками его по таблице переводить, через case of? Я полагаю есть путь значительно проще, средствами ОС без велосипедов.
|
|||
|
||||
| Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: нет Всего: 7 |
Я сам не ловил, но, наверное, есть готовые константы, чтобы таблицу руками не вбивать. Сути проблемы я не понял, нужно именно символы, или клавиши?
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
| CynicRus |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 248 Регистрация: 31.5.2012 Репутация: 1 Всего: 5 |
Нужно получить какой именно символ вбил пользователь. В или D - клавиша одна, а символы в зависимости от раскладки разные.
|
|||
|
||||
| Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: нет Всего: 7 |
Т. е. тебе надо узнать раскладку в конкретный момент времени для конкретного приложения?
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
| kami |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 15 Всего: 72 |
В свое время делал так:
Добавлено через 13 минут и 1 секунду Кстати,
это естественно, т.к. LL-хуки вызываются всегда в контексте "своего" процесса. Это сообщение отредактировал(а) kami - 15.4.2013, 00:00 |
||||
|
|||||
| TechnoMag |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.3.2010 Репутация: нет Всего: нет |
||||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |