Код:
Private Sub Hots_KeyUp(Index As Integer, KeyCode As Integer, Shift As Integer)
If KeyCode >= 65 And KeyCode <= 90 Then 'Îïðåäåëåíèå êëàâèøè
Hots(Index).Text = Chr(KeyCode)
Exit Sub
End If
Select Case KeyCode
Case 192
Hots(Index).Text = "~"
Case 49
Hots(Index).Text = "1"
Case 50
Hots(Index).Text = "2"
Case 51
Hots(Index).Text = "3"
Case 52
Hots(Index).Text = "4"
Case 53
Hots(Index).Text = "5"
Case 54
Hots(Index).Text = "6"
Case 55
Hots(Index).Text = "7"
Case 56
Hots(Index).Text = "8"
Case 57
Hots(Index).Text = "9"
Case 48
Hots(Index).Text = "0"
Case 189
Hots(Index).Text = "-"
Case 187
Hots(Index).Text = "="
Case 220
Hots(Index).Text = "\"
Case 8
Hots(Index).Text = "-BackSpace-"
Case 9
Hots(Index).Text = "-TAB-"
Case 20
Hots(Index).Text = "-CapsLock-"
Case 160
Hots(Index).Text = "-LShift-"
Case 161
Hots(Index).Text = "-RShift-"
Case 162
Hots(Index).Text = "-LCtrl-"
Case 163
Hots(Index).Text = "-RCtrl-"
Case 164
Hots(Index).Text = "-LAlt-"
Case 165
Hots(Index).Text = "-RAlt-"
Case 144
Hots(Index).Text = "-NumLock-"
Case 96
Hots(Index).Text = "-NP0-"
Case 97
Hots(Index).Text = "-NP1-"
Case 98
Hots(Index).Text = "-NP2-"
Case 99
Hots(Index).Text = "-NP3-"
Case 100
Hots(Index).Text = "-NP4-"
Case 101
Hots(Index).Text = "-NP5-"
Case 102
Hots(Index).Text = "-NP6-"
Case 103
Hots(Index).Text = "-NP7-"
Case 104
Hots(Index).Text = "-NP8-"
Case 105
Hots(Index).Text = "-NP9-"
Case 27
Hots(Index).Text = "-Esc-"
Case 112
Hots(Index).Text = "-F1-"
Case 113
Hots(Index).Text = "-F2-"
Case 114
Hots(Index).Text = "-F3-"
Case 115
Hots(Index).Text = "-F4-"
Case 116
Hots(Index).Text = "-F5-"
Case 117
Hots(Index).Text = "-F6-"
Case 118
Hots(Index).Text = "-F7-"
Case 119
Hots(Index).Text = "-F8-"
Case 120
Hots(Index).Text = "-F9-"
Case 121
Hots(Index).Text = "-F10-"
Case 122
Hots(Index).Text = "-F11-"
Case 123
Hots(Index).Text = "-F12-"
Case 111
Hots(Index).Text = "-NP/-"
Case 106
Hots(Index).Text = "*"
Case 109
Hots(Index).Text = "-NP--"
Case 107
Hots(Index).Text = "+"
Case 114
Hots(Index).Text = "-F3-"
Case 110
Hots(Index).Text = "-NP.-"
Case 44
Hots(Index).Text = "-PrintScreen-"
Case 145
Hots(Index).Text = "-ScrollLock-"
Case 19
Hots(Index).Text = "-PauseBreak-"
Case 33
Hots(Index).Text = "-PageUp-"
Case 34
Hots(Index).Text = "-PageDown-"
Case 36
Hots(Index).Text = "-Home-"
Case 35
Hots(Index).Text = "-End-"
Case 45
Hots(Index).Text = "-Insert-"
Case 46
Hots(Index).Text = "-Delete-"
Case 39
Hots(Index).Text = "-Right-"
Case 38
Hots(Index).Text = "-Up-"
Case 37
Hots(Index).Text = "-Left-"
Case 40
Hots(Index).Text = "-Down-"
Case 13
Hots(Index).Text = vbCrLf
Case 191
Hots(Index).Text = "/"
Case 188
Hots(Index).Text = ","
Case 190
Hots(Index).Text = "."
Case 219
Hots(Index).Text = "["
Case 221
Hots(Index).Text = "]"
Case 186
Hots(Index).Text = ";"
Case 222
Hots(Index).Text = "'"
End Select
End Sub
Это нужно, чтобы значения в этом поле совпадало с одним из возвращаемых значений функции KeyScan. Иначе программа не сможет понять какую кнопку нужно нажимать для ввода пароля. Скажу лишь, что index – это номер элемента массива Hots, а KeyCode – это код отпускаемой клавиши, когда курсор стоит на одном из элементов Hots. Надеюсь это понятно.
Теперь в обработчике таймера сотрите, все, что мы понаписали до этого и введите следующий код:
Код:
Private Sub Timer1_Timer()
Dim s As String
Dim i As Integer
s = KeyScan
For i = 0 To 7
If Hots(i).Text = s Then SendKeys (Passwords(i).Text)
Next i
End Sub
Вот здесь немного расскажу. Функция SendKeys посылает строку в программу в которой вы сейчас находитесь. То есть если вы будите находиться в Ворде и свёрнутая программа выполнит команду SendKeys(“fuck you”), то у вас в Ворде напечатается строка fuck you. Понимайте теперь как будут вводиться пароли. Мы играем в GTA, а наша программа просто запущена и мы её не видим. Когда нажимаем какю-нить кнопку таймер проверяет, не горячая ли клавиша была нажата. И если горячая, то вызывает процедуру SendKeys(), а в качестве параметра ей передаётся строка, которая лежит в элементе массива Pass. Естественно, если бы добавили не 8 полей для ввода паролей и горячей клавиши, то и в цикле вам надо указать не от 0 до 7, а от 0 до нужного вам числа. Ну надеюсь это ясно. Теперь можете откомпилить программу и играть в GTA. Но ещё может быть косяк. Если пароли в игре вводиться не будут, то пишите пароли в программе большими буквами или наоборот маленькими. С чем это связано я не понял, но на разных компах по разному. Ещё идейку подкину. Введите кучу раз пароль gettherefast стоя на одном и том же месте, тогда тачки будут сыпаться с неба. А потом стрельните по всей этой свалке из базуки. Такого взрыва вы ещё, наверное, некогда не видели…
Если будут какие проблемы пишите на jeon@inbox.ru, постараюсь ответить. В архиве со статьёй лежат исходники программы, которую мы писали. Удачи.