Страница: 1 |
Страница: 1 |
Вопрос: Клавиатура
Добавлено: 07.01.10 17:14
Автор вопроса:
not Understand
Ребят, а кроме как кроме воспользоваться АПИ не как нельзя следить за клавиатурой?? (за всем вводом на ней)
Ответы
Всего ответов: 13
Номер ответа: 1
Автор ответа: AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #1
Добавлено: 07.01.10 17:29
в VB нет таких функций.
Номер ответа: 2
Автор ответа: not Understand
Вопросов: 2
Ответов: 9
Профиль | | #2
Добавлено: 07.01.10 18:39
Муха
Так в контре авп называлась раньше вроде.
Слушай, а приведи пример если можешь, или кто может.
Это кажется GetAsyncKeyState ?
Номер ответа: 3
Автор ответа: Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #3
Добавлено: 08.01.10 00:20
'Реагирует на нажатие клавиши (при удержании клавиши срабатывает постоянно с некоторым промежутком времени)
Public Function kbdKeyPush(ByRef key As Byte) As Boolean
If (GetAsyncKeyState(key) And -32767) = -32767 Then kbdKeyPush = True
End Function
'Всегда TRUE при удержании клавиши
Public Function kbdKeyHold(ByRef key As Byte) As Boolean
If (GetAsyncKeyState(key) And -32768) = -32768 Then kbdKeyHold = True
End Function
'Как kbdKeyPush но срабатывает один раз для одного нажатия клавиши
Public Function kbdKeyOnce(ByRef key As Byte) As Boolean
If (GetAsyncKeyState(key) And -32768) = -32768 Then
If Not kbdmap(key) Then kbdKeyOnce = True
kbdmap(key) = True
Else
kbdmap(key) = False
End If
End Function
Но круче использовать низкоуровневый hook клавиатуры, только делать это надо в отдельном потоке (я сделал вообще отдельным приложением, чтоб не париться с мультитредингом и вообще получается надежней)
Номер ответа: 4
Автор ответа: Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #4
Добавлено: 08.01.10 02:01
Когда я такое сделал это назвали костылем.
Номер ответа: 5
Автор ответа: Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #5
Добавлено: 08.01.10 02:52
Smith, следить за клавиатурой с помощью GetAsyncKeyState? ну в какой-то мере костыль) Есть еще функция GetKeyboardState, но она работает не глобально, если свернуть программу, то кранты. Хук - это лучшее я считаю. Хотя тоже хрень какая-то)
Номер ответа: 6
Автор ответа: Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #6
Добавлено: 08.01.10 03:03
нет, костылем назвали отдельную прогу вместо потока.
Номер ответа: 7
Автор ответа: Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #7
Добавлено: 08.01.10 13:15
Smith, а если основная программа зависнет из-за чего-нибудь. Хуковый поток выживет? А то получим подвисание клавиатуры(мыши) до тех пор пока до венды не дойдет, что ВСЁ ПОВИСЛО.
Воот, ну а если приложение только хуком занимается, то чего ему виснуть)
Номер ответа: 8
Автор ответа: not Understand
Вопросов: 2
Ответов: 9
Профиль | | #8
Добавлено: 08.01.10 13:49
Спс рубят. Winand
тебе в отдельности
Номер ответа: 9
Автор ответа: Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #9
Добавлено: 08.01.10 18:55
Winand да я ничего не имею против, я точно так и делал.
Номер ответа: 10
Автор ответа: not Understand
Вопросов: 2
Ответов: 9
Профиль | | #10
Добавлено: 08.01.10 20:18
\Ребят, я в АПИ вообще нуб. А можно еще пример. В примере не понял где идет запись в файл? Мне нужно чтобы когда я построил свою программу и запихнул ее в автозагрузку, то она бы записывала все нажатия на клаву. Вообще все!!!!! И пожалуйста ребят, я действительно в апи не фига не понимаю, можно реальный пример, оч нужно. За ранее спс
Номер ответа: 11
Автор ответа: Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #11
Добавлено: 08.01.10 20:19
Smith, посредством чего общался с основной программой?
Номер ответа: 12
Автор ответа: Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #12
Добавлено: 08.01.10 21:08
Сначала DDE, но потом с обнаружил, что в зверях сервис отключен и перешел на апи
Номер ответа: 13
Автор ответа: not Understand
Вопросов: 2
Ответов: 9
Профиль | | #13
Добавлено: 10.01.10 23:24
игнорщики