Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'frmMain:
- Imports System.IO
- Public Class frmMain
- Dim strStreamWriter As StreamWriter
- Public WithEvents KeysHook As New KeyboardHook
- Dim Auto_Backspace_Key As Boolean = True
- Dim Auto_Enter_Key As Boolean = True
- Dim Auto_Tab_Key As Boolean = True
- Dim No_F_Keys As Boolean = False
- Private Sub KeysHook_KeyDown(ByVal Key As Keys) Handles KeysHook.KeyDown
- Select Case Control.ModifierKeys
- Case 393216 ' Alt-GR + Key
- Select Case Key
- Case Keys.D1 : Key_Listener("|")
- Case Keys.D2 : Key_Listener("@")
- Case Keys.D3 : Key_Listener("#")
- Case Keys.D4 : Key_Listener("~")
- Case Keys.D5 : Key_Listener("€")
- Case Keys.D6 : Key_Listener("¬")
- Case Keys.E : Key_Listener("€")
- Case Keys.Oem1 : Key_Listener("[")
- Case Keys.Oem5 : Key_Listener("\")
- Case Keys.Oem7 : Key_Listener("{")
- Case Keys.Oemplus : Key_Listener("]")
- Case Keys.OemQuestion : Key_Listener("}")
- Case Else : Key_Listener("")
- End Select
- Case 65536 ' LShift/RShift + Key
- Select Case Key
- Case Keys.D0 : Key_Listener("=")
- Case Keys.D1 : Key_Listener("!")
- Case Keys.D2 : Key_Listener("""")
- Case Keys.D3 : Key_Listener("·")
- Case Keys.D4 : Key_Listener("$")
- Case Keys.D5 : Key_Listener("%")
- Case Keys.D6 : Key_Listener("&")
- Case Keys.D7 : Key_Listener("/")
- Case Keys.D8 : Key_Listener("(")
- Case Keys.D9 : Key_Listener(")")
- Case Keys.Oem1 : Key_Listener("^")
- Case Keys.Oem5 : Key_Listener("ª")
- Case Keys.Oem6 : Key_Listener("¿")
- Case Keys.Oem7 : Key_Listener("¨")
- Case Keys.OemBackslash : Key_Listener(">")
- Case Keys.Oemcomma : Key_Listener(";")
- Case Keys.OemMinus : Key_Listener("_")
- Case Keys.OemOpenBrackets : Key_Listener("?")
- Case Keys.OemPeriod : Key_Listener(":")
- Case Keys.Oemplus : Key_Listener("*")
- Case Keys.OemQuestion : Key_Listener("Ç")
- Case Keys.Oemtilde : Key_Listener("Ñ")
- Case Else : Key_Listener("")
- End Select
- Case Else
- If Key.ToString.Length = 1 Then ' Single alpha key
- If Control.IsKeyLocked(Keys.CapsLock) Or Control.ModifierKeys = Keys.Shift Then
- Key_Listener(Key.ToString.ToUpper)
- Else
- Key_Listener(Key.ToString.ToLower)
- End If
- Else
- Select Case Key ' Single special key
- Case Keys.Add : Key_Listener("+")
- Case Keys.Back : Key_Listener("{BackSpace}")
- Case Keys.D0 : Key_Listener("0")
- Case Keys.D1 : Key_Listener("1")
- Case Keys.D2 : Key_Listener("2")
- Case Keys.D3 : Key_Listener("3")
- Case Keys.D4 : Key_Listener("4")
- Case Keys.D5 : Key_Listener("5")
- Case Keys.D6 : Key_Listener("6")
- Case Keys.D7 : Key_Listener("7")
- Case Keys.D8 : Key_Listener("8")
- Case Keys.D9 : Key_Listener("9")
- Case Keys.Decimal : Key_Listener(".")
- Case Keys.Delete : Key_Listener("{Supr}")
- Case Keys.Divide : Key_Listener("/")
- Case Keys.End : Key_Listener("{End}")
- Case Keys.Enter : Key_Listener("{Enter}")
- Case Keys.F1 : Key_Listener("{F1}")
- Case Keys.F10 : Key_Listener("{F10}")
- Case Keys.F11 : Key_Listener("{F11}")
- Case Keys.F12 : Key_Listener("{F12}")
- Case Keys.F2 : Key_Listener("{F2}")
- Case Keys.F3 : Key_Listener("{F3}")
- Case Keys.F4 : Key_Listener("{F4}")
- Case Keys.F5 : Key_Listener("{F5}")
- Case Keys.F6 : Key_Listener("{F6}")
- Case Keys.F7 : Key_Listener("{F7}")
- Case Keys.F8 : Key_Listener("{F8}")
- Case Keys.F9 : Key_Listener("{F9}")
- Case Keys.Home : Key_Listener("{Home}")
- Case Keys.Insert : Key_Listener("{Insert}")
- Case Keys.Multiply : Key_Listener("*")
- Case Keys.NumPad0 : Key_Listener("0")
- Case Keys.NumPad1 : Key_Listener("1")
- Case Keys.NumPad2 : Key_Listener("2")
- Case Keys.NumPad3 : Key_Listener("3")
- Case Keys.NumPad4 : Key_Listener("4")
- Case Keys.NumPad5 : Key_Listener("5")
- Case Keys.NumPad6 : Key_Listener("6")
- Case Keys.NumPad7 : Key_Listener("7")
- Case Keys.NumPad8 : Key_Listener("8")
- Case Keys.NumPad9 : Key_Listener("9")
- Case Keys.Oem1 : Key_Listener("`")
- Case Keys.Oem5 : Key_Listener("º")
- Case Keys.Oem6 : Key_Listener("¡")
- Case Keys.Oem7 : Key_Listener("´")
- Case Keys.OemBackslash : Key_Listener("<")
- Case Keys.Oemcomma : Key_Listener(",")
- Case Keys.OemMinus : Key_Listener(".")
- Case Keys.OemOpenBrackets : Key_Listener("'")
- Case Keys.OemPeriod : Key_Listener("-")
- Case Keys.Oemplus : Key_Listener("+")
- Case Keys.OemQuestion : Key_Listener("ç")
- Case Keys.Oemtilde : Key_Listener("ñ")
- Case Keys.PageDown : Key_Listener("{AvPag}")
- Case Keys.PageUp : Key_Listener("{RePag}")
- Case Keys.Space : Key_Listener(" ")
- Case Keys.Subtract : Key_Listener("-")
- Case Keys.Tab : Key_Listener("{Tabulation}")
- Case Else : Key_Listener("")
- End Select
- End If
- End Select
- End Sub
- Public Sub Key_Listener(ByVal key As String)
- If key = "{F8}" Then
- AddHandler mHook.Mouse_Left_DoubleClick, AddressOf mHook_Mouse_Left_DoubleClick
- AddHandler mHook.Mouse_Left_Down, AddressOf mHook_Mouse_Left_Down
- AddHandler mHook.Mouse_Left_Up, AddressOf mHook_Mouse_Left_Up
- AddHandler mHook.Mouse_Middle_DoubleClick, AddressOf mHook_Mouse_Middle_DoubleClick
- AddHandler mHook.Mouse_Middle_Down, AddressOf mHook_Mouse_Middle_Down
- AddHandler mHook.Mouse_Middle_Up, AddressOf mHook_Mouse_Middle_Up
- 'AddHandler mHook.Mouse_Move, AddressOf mHook_Mouse_Move
- AddHandler mHook.Mouse_Right_DoubleClick, AddressOf mHook_Mouse_Right_DoubleClick
- AddHandler mHook.Mouse_Right_Down, AddressOf mHook_Mouse_Right_Down
- AddHandler mHook.Mouse_Right_Up, AddressOf mHook_Mouse_Right_Up
- AddHandler mHook.Mouse_Wheel, AddressOf mHook_Mouse_Wheel
- End If
- End Sub
- Private WithEvents mHook As New MouseHook
- Private Sub mHook_Mouse_Left_DoubleClick(ByVal ptLocat As System.Drawing.Point) Handles mHook.Mouse_Left_DoubleClick
- Escribir("Mouse Left Double Click At: (" & ptLocat.X & "," & ptLocat.Y & ")")
- End Sub
- Private Sub mHook_Mouse_Left_Down(ByVal ptLocat As System.Drawing.Point) Handles mHook.Mouse_Left_Down
- Escribir("Mouse Left Down At: (" & ptLocat.X & "," & ptLocat.Y & ")")
- End Sub
- Private Sub mHook_Mouse_Left_Up(ByVal ptLocat As System.Drawing.Point) Handles mHook.Mouse_Left_Up
- Escribir("Mouse Left Up At: (" & ptLocat.X & "," & ptLocat.Y & ")")
- End Sub
- Private Sub mHook_Mouse_Middle_DoubleClick(ByVal ptLocat As System.Drawing.Point) Handles mHook.Mouse_Middle_DoubleClick
- Escribir("Mouse Middle Double Click At: (" & ptLocat.X & "," & ptLocat.Y & ")")
- End Sub
- Private Sub mHook_Mouse_Middle_Down(ByVal ptLocat As System.Drawing.Point) Handles mHook.Mouse_Middle_Down
- Escribir("Mouse Middle Down At: (" & ptLocat.X & "," & ptLocat.Y & ")")
- End Sub
- Private Sub mHook_Mouse_Middle_Up(ByVal ptLocat As System.Drawing.Point) Handles mHook.Mouse_Middle_Up
- Escribir("Mouse Middle Up At: (" & ptLocat.X & "," & ptLocat.Y & ")")
- End Sub
- Private Sub mHook_Mouse_Move(ByVal ptLocat As System.Drawing.Point) Handles mHook.Mouse_Move
- ''Will be called every time the mouse moves
- End Sub
- Private Sub mHook_Mouse_Right_DoubleClick(ByVal ptLocat As System.Drawing.Point) Handles mHook.Mouse_Right_DoubleClick
- Escribir("Mouse Right Double Click At: (" & ptLocat.X & "," & ptLocat.Y & ")")
- End Sub
- Private Sub mHook_Mouse_Right_Down(ByVal ptLocat As System.Drawing.Point) Handles mHook.Mouse_Right_Down
- Escribir("Mouse Right Down At: (" & ptLocat.X & "," & ptLocat.Y & ")")
- End Sub
- Private Sub mHook_Mouse_Right_Up(ByVal ptLocat As System.Drawing.Point) Handles mHook.Mouse_Right_Up
- Escribir("Mouse Right Up At: (" & ptLocat.X & "," & ptLocat.Y & ")")
- End Sub
- Private Sub mHook_Mouse_Wheel(ByVal ptLocat As System.Drawing.Point, ByVal Direction As MouseHook.Wheel_Direction) Handles mHook.Mouse_Wheel
- Escribir("Mouse Scroll: " & Direction.ToString & " At: (" & ptLocat.X & "," & ptLocat.Y & ")")
- End Sub
- Private Sub Escribir(ByVal texto As String)
- Dim sRenglon As String = Nothing
- Dim strStreamW As Stream = Nothing
- strStreamWriter = Nothing
- Dim ContenidoArchivo As String = Nothing
- ' Donde guardamos los paths de los archivos que vamos a estar utilizando ..
- Dim PathArchivo As String
- 'Dim i As Integer
- Try
- 'If Directory.Exists("C:\Capeta") = False Then ' si no existe la carpeta se crea
- ' Directory.CreateDirectory("C:\carpeta")
- 'End If
- 'Windows.Forms.Cursor.Current = Cursors.WaitCursor
- PathArchivo = "Mouse Logger.txt" ' Se determina el nombre del archivo con la fecha actual
- 'verificamos si existe el archivo
- If File.Exists(PathArchivo) Then
- strStreamW = File.Open(PathArchivo, FileMode.Open) 'Abrimos el archivo
- Else
- strStreamW = File.Create(PathArchivo) ' lo creamos
- End If
- strStreamWriter = New StreamWriter(strStreamW, System.Text.Encoding.Default) ' tipo de codificacion para escritura
- 'escribimos en el archivo
- strStreamWriter.Write(texto)
- strStreamWriter.Close() ' cerramos
- Catch ex As Exception
- MsgBox("Error al Guardar la ingormacion en el archivo. " & ex.ToString, MsgBoxStyle.Critical, Application.ProductName)
- strStreamWriter.Close() ' cerramos
- End Try
- End Sub
- Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- End Sub
- End Class
- 'Classes:
- Imports System.Runtime.InteropServices
- Public Class MouseHook
- Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Integer, ByVal lpfn As MouseProcDelegate, ByVal hmod As Integer, ByVal dwThreadId As Integer) As Integer
- Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Integer, ByVal nCode As Integer, ByVal wParam As Integer, ByVal lParam As MSLLHOOKSTRUCT) As Integer
- Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Integer) As Integer
- Private Delegate Function MouseProcDelegate(ByVal nCode As Integer, ByVal wParam As Integer, ByRef lParam As MSLLHOOKSTRUCT) As Integer
- Private Structure MSLLHOOKSTRUCT
- Public pt As Point
- Public mouseData As Integer
- Public flags As Integer
- Public time As Integer
- Public dwExtraInfo As Integer
- End Structure
- Public Enum Wheel_Direction
- WheelUp
- WheelDown
- End Enum
- Private Const HC_ACTION As Integer = 0
- Private Const WH_MOUSE_LL As Integer = 14
- Private Const WM_MOUSEMOVE As Integer = &H200
- Private Const WM_LBUTTONDOWN As Integer = &H201
- Private Const WM_LBUTTONUP As Integer = &H202
- Private Const WM_LBUTTONDBLCLK As Integer = &H203
- Private Const WM_RBUTTONDOWN As Integer = &H204
- Private Const WM_RBUTTONUP As Integer = &H205
- Private Const WM_RBUTTONDBLCLK As Integer = &H206
- Private Const WM_MBUTTONDOWN As Integer = &H207
- Private Const WM_MBUTTONUP As Integer = &H208
- Private Const WM_MBUTTONDBLCLK As Integer = &H209
- Private Const WM_MOUSEWHEEL As Integer = &H20A
- Private MouseHook As Integer
- Private MouseHookDelegate As MouseProcDelegate
- Public Event Mouse_Move(ByVal ptLocat As Point)
- Public Event Mouse_Left_Down(ByVal ptLocat As Point)
- Public Event Mouse_Left_Up(ByVal ptLocat As Point)
- Public Event Mouse_Left_DoubleClick(ByVal ptLocat As Point)
- Public Event Mouse_Right_Down(ByVal ptLocat As Point)
- Public Event Mouse_Right_Up(ByVal ptLocat As Point)
- Public Event Mouse_Right_DoubleClick(ByVal ptLocat As Point)
- Public Event Mouse_Middle_Down(ByVal ptLocat As Point)
- Public Event Mouse_Middle_Up(ByVal ptLocat As Point)
- Public Event Mouse_Middle_DoubleClick(ByVal ptLocat As Point)
- Public Event Mouse_Wheel(ByVal ptLocat As Point, ByVal Direction As Wheel_Direction)
- Public Sub New()
- MouseHookDelegate = New MouseProcDelegate(AddressOf MouseProc)
- MouseHook = SetWindowsHookEx(WH_MOUSE_LL, MouseHookDelegate, System.Runtime.InteropServices.Marshal.GetHINSTANCE(System.Reflection.Assembly.GetExecutingAssembly.GetModules()(0)).ToInt32, 0)
- End Sub
- Private Function MouseProc(ByVal nCode As Integer, ByVal wParam As Integer, ByRef lParam As MSLLHOOKSTRUCT) As Integer
- If (nCode = HC_ACTION) Then
- Select Case wParam
- Case WM_MOUSEMOVE
- RaiseEvent Mouse_Move(lParam.pt)
- Case WM_LBUTTONDOWN
- RaiseEvent Mouse_Left_Down(lParam.pt)
- Case WM_LBUTTONUP
- RaiseEvent Mouse_Left_Up(lParam.pt)
- Case WM_LBUTTONDBLCLK
- RaiseEvent Mouse_Left_DoubleClick(lParam.pt)
- Case WM_RBUTTONDOWN
- RaiseEvent Mouse_Right_Down(lParam.pt)
- Case WM_RBUTTONUP
- RaiseEvent Mouse_Right_Up(lParam.pt)
- Case WM_RBUTTONDBLCLK
- RaiseEvent Mouse_Right_DoubleClick(lParam.pt)
- Case WM_MBUTTONDOWN
- RaiseEvent Mouse_Middle_Down(lParam.pt)
- Case WM_MBUTTONUP
- RaiseEvent Mouse_Middle_Up(lParam.pt)
- Case WM_MBUTTONDBLCLK
- RaiseEvent Mouse_Middle_DoubleClick(lParam.pt)
- Case WM_MOUSEWHEEL
- Dim wDirection As Wheel_Direction
- If lParam.mouseData < 0 Then
- wDirection = Wheel_Direction.WheelDown
- Else
- wDirection = Wheel_Direction.WheelUp
- End If
- RaiseEvent Mouse_Wheel(lParam.pt, wDirection)
- End Select
- End If
- Return CallNextHookEx(MouseHook, nCode, wParam, lParam)
- End Function
- Protected Overrides Sub Finalize()
- UnhookWindowsHookEx(MouseHook)
- MyBase.Finalize()
- End Sub
- End Class
- Public Class KeyboardHook
- <DllImport("User32.dll", CharSet:=CharSet.Auto, CallingConvention:=CallingConvention.StdCall)> _
- Private Overloads Shared Function SetWindowsHookEx(ByVal idHook As Integer, ByVal HookProc As KBDLLHookProc, ByVal hInstance As IntPtr, ByVal wParam As Integer) As Integer
- End Function
- <DllImport("User32.dll", CharSet:=CharSet.Auto, CallingConvention:=CallingConvention.StdCall)> _
- Private Overloads Shared Function CallNextHookEx(ByVal idHook As Integer, ByVal nCode As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As Integer
- End Function
- <DllImport("User32.dll", CharSet:=CharSet.Auto, CallingConvention:=CallingConvention.StdCall)> _
- Private Overloads Shared Function UnhookWindowsHookEx(ByVal idHook As Integer) As Boolean
- End Function
- <StructLayout(LayoutKind.Sequential)> _
- Private Structure KBDLLHOOKSTRUCT
- Public vkCode As UInt32
- Public scanCode As UInt32
- Public flags As KBDLLHOOKSTRUCTFlags
- Public time As UInt32
- Public dwExtraInfo As UIntPtr
- End Structure
- <Flags()> _
- Private Enum KBDLLHOOKSTRUCTFlags As UInt32
- LLKHF_EXTENDED = &H1
- LLKHF_INJECTED = &H10
- LLKHF_ALTDOWN = &H20
- LLKHF_UP = &H80
- End Enum
- Public Shared Event KeyDown(ByVal Key As Keys)
- Public Shared Event KeyUp(ByVal Key As Keys)
- Private Const WH_KEYBOARD_LL As Integer = 13
- Private Const HC_ACTION As Integer = 0
- Private Const WM_KEYDOWN = &H100
- Private Const WM_KEYUP = &H101
- Private Const WM_SYSKEYDOWN = &H104
- Private Const WM_SYSKEYUP = &H105
- Private Delegate Function KBDLLHookProc(ByVal nCode As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As Integer
- Private KBDLLHookProcDelegate As KBDLLHookProc = New KBDLLHookProc(AddressOf KeyboardProc)
- Private HHookID As IntPtr = IntPtr.Zero
- Private Function KeyboardProc(ByVal nCode As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As Integer
- If (nCode = HC_ACTION) Then
- Dim struct As KBDLLHOOKSTRUCT
- Select Case wParam
- Case WM_KEYDOWN, WM_SYSKEYDOWN
- RaiseEvent KeyDown(CType(CType(Marshal.PtrToStructure(lParam, struct.GetType()), KBDLLHOOKSTRUCT).vkCode, Keys))
- Case WM_KEYUP, WM_SYSKEYUP
- RaiseEvent KeyUp(CType(CType(Marshal.PtrToStructure(lParam, struct.GetType()), KBDLLHOOKSTRUCT).vkCode, Keys))
- End Select
- End If
- Return CallNextHookEx(IntPtr.Zero, nCode, wParam, lParam)
- End Function
- Public Sub New()
- HHookID = SetWindowsHookEx(WH_KEYBOARD_LL, KBDLLHookProcDelegate, System.Runtime.InteropServices.Marshal.GetHINSTANCE(System.Reflection.Assembly.GetExecutingAssembly.GetModules()(0)).ToInt32, 0)
- If HHookID = IntPtr.Zero Then
- Throw New Exception("Could not set keyboard hook")
- End If
- End Sub
- Protected Overrides Sub Finalize()
- If Not HHookID = IntPtr.Zero Then
- UnhookWindowsHookEx(HHookID)
- End If
- MyBase.Finalize()
- End Sub
- End Class
Advertisement
Add Comment
Please, Sign In to add comment