Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Нажатие клавиш... Добавлено: 27.01.04 15:43  

Автор вопроса:  Дмитрий Щапов

Как отслеживать нажатия клавиш. ***!***Не только при активной форме***!***

Чтобы узнавать о каждой нажатой клавиши.

Кстати, мож знаете как скрыть процесс приложения в XP...

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 NeForm@t



ICQ: 252999255 

Вопросов: 36
Ответов: 247
 Web-сайт: g--k.newmail.ru
 Профиль | | #1
Добавлено: 27.01.04 15:52

кинь на форму таймер с интервалом 35, и лейбл

Private Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Long) As Integer

Private Sub Timer1_Timer()

Dim i As Byte

For i = 0 To 254

If GetAsyncKeyState(i) Then Label1 = Chr$(i)

Next i

End Sub

Зы пока мы только над итим думаем

Ответить

Номер ответа: 2
Автор ответа:
 NovichoK



Вопросов: 72
Ответов: 147
 Профиль | | #2 Добавлено: 27.01.04 23:09
Чтоб отслеживать нажатия клавиш нужно поставить системный хук, видишь мой вопрос выше чуть-чуть находиться, так если тебе надо для 98 то там найдешь пример, если же нет то жди может мне ответят...

Ответить

Номер ответа: 3
Автор ответа:
 goodroman



ICQ: 307245054 

Вопросов: 5
Ответов: 7
 Web-сайт: google.com
 Профиль | | #3
Добавлено: 31.01.04 22:09

То, что тебе первым посоветовали, работать не совсем будет. Коды у этой функции совпадают только с буквами. Остальные сам натыкай. И данная реализаци у меня очень хреново работала поэтому испотзуй сразу два апи - GetAsyncKeyState и GetKeyState. Ну типа вот так: Работает очень быстро... И с простым таймером. Чтоб с апи-таймером не заморачиваться... Вот примерный код:

Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer

Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Public KeyFGKS(255) As Integer

Function KeyScan() As String

For i = 1 To 255

If Not GetKeyState(i) = KeyFGKS(i) And GetAsyncKeyState(i) <> 0 Then 'Если кнопка была нажата

KeyFGKS(i) = GetKeyState(i)

If i >= 68 And i <= 90 Then 'Определение клавиши

KeyScan = Chr(i)

Exit For

End If

Select Case i

Case 1

KeyScan = "LeftMouse"

Case 2

KeyScan = "RightMouse"

Case 4

KeyScan = "MouseScroll"

Case 192

KeyScan = "~"

Case 49

KeyScan = "1"

Case 50

KeyScan = "2"

Case 51

KeyScan = "3"

Case 52

KeyScan = "4"

Case 53

KeyScan = "5"

Case 54

KeyScan = "6"

Case 55

KeyScan = "7"

Case 56

KeyScan = "8"

Case 57

KeyScan = "9"

Case 48

KeyScan = "0"

Case 189

KeyScan = "-"

Case 187

KeyScan = "="

Case 220

KeyScan = "\"

Case 8

KeyScan = "BackSpace"

Case 9

KeyScan = "TAB"

Case 20

KeyScan = "CapsLock"

Case 160

KeyScan = "LShift"

Case 161

KeyScan = "RShift"

Case 162

KeyScan = "LCtrl"

Case 163

KeyScan = "RCtrl"

Case 164

KeyScan = "LAlt"

Case 165

KeyScan = "RAlt"

Case 32

KeyScan = " "

Case 144

KeyScan = "NumLock"

Case 96

KeyScan = "NP0"

Case 97

KeyScan = "NP1"

Case 98

KeyScan = "NP2"

Case 99

KeyScan = "NP3"

Case 100

KeyScan = "NP4"

Case 101

KeyScan = "NP5"

Case 102

KeyScan = "NP6"

Case 103

KeyScan = "NP7"

Case 104

KeyScan = "NP8"

Case 105

KeyScan = "NP9"

Case 27

KeyScan = "Esc"

Case 112

KeyScan = "F1"

Case 113

KeyScan = "F2"

Case 114

KeyScan = "F3"

Case 115

KeyScan = "F4"

Case 116

KeyScan = "F5"

Case 117

KeyScan = "F6"

Case 118

KeyScan = "F7"

Case 119

KeyScan = "F8"

Case 120

KeyScan = "F9"

Case 121

KeyScan = "F10"

Case 122

KeyScan = "F11"

Case 123

KeyScan = "F12"

Case 111

KeyScan = "NP/"

Case 106

KeyScan = "*"

Case 109

KeyScan = "NP-"

Case 107

KeyScan = "+"

Case 114

KeyScan = "F3"

Case 110

KeyScan = "NP."

Case 44

KeyScan = "PrintScreen"

Case 145

KeyScan = "ScrollLock"

Case 19

KeyScan = "PauseBreak"

Case 33

KeyScan = "PageUp"

Case 34

KeyScan = "PageDown"

Case 36

KeyScan = "Home"

Case 35

KeyScan = "End"

Case 45

KeyScan = "Insert"

Case 46

KeyScan = "Delete"

Case 39

KeyScan = "Right"

Case 38

KeyScan = "Up"

Case 37

KeyScan = "Left"

Case 40

KeyScan = "Down"

Case 13

KeyScan = vbCrLf

Case 191

KeyScan = "/"

Case 188

KeyScan = ","

Case 190

KeyScan = "."

Case 219

KeyScan = "["

Case 221

KeyScan = "]"

Case 186

KeyScan = ";"

Case 222

KeyScan = "'"

End Select

Exit For 'Если кнопка была нажата, то выход из цикла после выполнения всех процедур

End If

Next i

End Function

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам