![]() |
|
|
![]()
|
|
| S.A.P. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: нет Всего: 71 |
Народ, нужна помощь. Можно ли как нибудь прочитать состояние порта клавиатуры под виндой? Короче надо в один раз снять состояние клавиатуры на низком уровне без хуков и сообщений.
Пробовал через 96, 60, 64 порты не получается Или в винде вобще нельзя? |
|||
|
||||
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 1 Всего: 11 |
К портам обращатся напрямыю приложениям user-mode нельзя, можно, написать фильтр на драйвер клавы, и получить доступ через него, а можно использовать недокументированные функции ядра
void Ke386SetIoAccessMap(int, IOPM *); void Ke386QueryIoAccessMap(int, IOPM *); void Ke386IoSetAccessProcess(PEPROCESS, int); которые могут установить разрешение для твоего приложения, напрямую обращатся к портам, использование этих функций продемонстрировано в драйвере WinIO -------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
| S.A.P. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: нет Всего: 71 |
А можно пример, желательно на C++?
|
|||
|
||||
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 1 Всего: 11 |
пример чего, драйвера ?
-------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
| S.A.P. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: нет Всего: 71 |
Почему драйвера? Я так понял, что используя вышеприведенные недокументированные функции можно разрешить приложению прямой доступ к портам.
Или приложению вобще нельзя? |
|||
|
||||
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 1 Всего: 11 |
Я же сказал, это функции ядра, т.е. вызывать их могут, только приложения режима ядра, тобишь драйвера. -------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
| S.A.P. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: нет Всего: 71 |
Ясно.
Могу ли я как нибудь использовать существующие дрова для прямого доступа к клавиатуре? |
|||
|
||||
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 1 Всего: 11 |
Да я же сказал можешь использовать драйвер WinIO, он идёт вместе с сырцами, скачать можно тут http://www.internals.com/
-------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
| S.A.P. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: нет Всего: 71 |
Тут возникла такая проблема, может знаешь в чем дело. Скачал архив, подключил либу, все библиотеки и драйвера в папке как положено, но при линковке VC пишет вот что
Архив качал заново - та же история, на диске у меня еще 200 мегов свободно. Скандиск тоже делал - безполезно. В чем может быть ошибка? Я тебя наверное уже достал, да и тема начала выходить за рамки асма. |
|||
|
||||
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 1 Всего: 11 |
странно, а полный текст об ошибке можешь выдать ?
-------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
| S.A.P. |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: нет Всего: 71 |
А вот, примерно, как я тестировал
Добавлено @ 12:37 Либы всякие подключал и для NT и для 9x, и из примера брал, не работает |
||||
|
|||||
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 1 Всего: 11 |
А ты пробывал компилить пример, который там идёт ?
Попробуй перекомпилировать сам WinIO(библиотеук DLL, а не драйвер), и попробуй ещё раз. Каким компилятором компилишь, я сейчас пробывал в VC6.0 VC7.0 всё нормально компилируется. -------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |