Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
The Mouse - Form1.vb

Form1.vb

Caricato da: Totem
Scarica il programma completo

  1. Imports System.Windows.Forms
  2. Public Class Form1
  3. #Region "API"
  4.     Declare Auto Sub mouse_event Lib "user32.dll" (ByVal dwFlags As Int32, ByVal dx As Int32, ByVal dy As Int32, ByVal cButtons As Int32, ByVal dwExtraInfo As IntPtr)
  5.     Declare Auto Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Int32) As Int16
  6.     Public Enum MouseEventTFlags
  7.         LEFTDOWN = 2
  8.         LEFTUP = 4
  9.         MIDDLEDOWN = 32
  10.         MIDDLEUP = 64
  11.         MOVE = 1
  12.         ABSOLUTE = 0
  13.         RIGHTDOWN = 8
  14.         RIGHTUP = 16
  15.     End Enum
  16. #End Region
  17.     Public RecordingFile As IO.StreamWriter
  18.     Public Mov As New ArrayList
  19.     Public MovIndex As UInt32
  20.     Private Sub tmrTrackMouse_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrTrackMouse.Tick
  21.         Dim Pos As Point = Cursor.Position
  22.         'False = mouse up; True = mouse down
  23.         Dim LClick As Boolean = GetAsyncKeyState(Keys.LButton)
  24.         'Dim RClick As Boolean = GetAsyncKeyState(Keys.RButton)
  25.         'Dim MClick As Boolean = GetAsyncKeyState(Keys.MButton)
  26.         RecordingFile.Write(Pos.X & ":" & Pos.Y & ":" & CInt(LClick) & ";") '":" & CInt(RClick) & ":" & CInt(MClick) & ";")
  27.     End Sub
  28.     Private Sub cmdRecord_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdRecord.Click
  29.         If cmdRecord.Text = "Registra i movimenti del mouse" Then
  30.             Dim S As New SaveFileDialog
  31.             S.Filter = "Movimenti del mouse|*.mmov"
  32.             If S.ShowDialog = Windows.Forms.DialogResult.OK Then
  33.                 RecordingFile = New IO.StreamWriter(S.FileName)
  34.                 tmrTrackMouse.Start()
  35.             End If
  36.             cmdRecord.Text = "Termina"
  37.         Else
  38.             tmrTrackMouse.Stop()
  39.             RecordingFile.Close()
  40.             cmdRecord.Text = "Registra i movimenti del mouse"
  41.         End If
  42.     End Sub
  43.     Private Sub cmdPlay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPlay.Click
  44.         Dim O As New OpenFileDialog
  45.         O.Filter = "Movimenti del mouse|*.mmov"
  46.         If O.ShowDialog = Windows.Forms.DialogResult.OK Then
  47.             Dim R As New IO.StreamReader(O.FileName)
  48.             Dim S As String = R.ReadToEnd
  49.             R.Close()
  50.             Dim Data() As String = S.Split(";")
  51.  
  52.             Mov.Clear()
  53.  
  54.             For V As UInt16 = 0 To Data.Length - 2
  55.                 If V <> Nothing Then
  56.                     Mov.Add(Data(V))
  57.                 End If
  58.             Next
  59.  
  60.             MovIndex = 0
  61.             tmrPlay.Start()
  62.         End If
  63.     End Sub
  64.     Private Sub tmrPlay_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrPlay.Tick
  65.         Dim Values() As String = Mov(MovIndex).Split(":")
  66.         Dim X As Int32 = CInt(Values(0))
  67.         Dim Y As Int32 = CInt(Values(1))
  68.         Dim LClick As Boolean = CBool(Values(2))
  69.         'Dim RClick As Boolean = CBool(Values(3))
  70.         'Dim MClick As Boolean = CBool(Values(4))
  71.  
  72.         Cursor.Position = New Point(X, Y)
  73.  
  74.         If LClick Then
  75.             mouse_event(2, 0, 0, 0, 0)
  76.         Else
  77.             mouse_event(4, 0, 0, 0, 0)
  78.         End If
  79.  
  80.         'If RClick Then
  81.         'mouse_event(8, 0, 0, 0, 0)
  82.         'Else
  83.         'mouse_event(16, 0, 0, 0, 0)
  84.         'End If
  85.  
  86.         'If MClick Then
  87.         'mouse_event(32, 0, 0, 0, 0)
  88.         'Else
  89.         'mouse_event(64, 0, 0, 0, 0)
  90.         'End If
  91.  
  92.         If MovIndex < Mov.Count - 1 Then
  93.             MovIndex += 1
  94.         Else
  95.             tmrPlay.Stop()
  96.             MsgBox("Movimenti eseguiti!", MsgBoxStyle.Information)
  97.             MovIndex = 0
  98.         End If
  99.     End Sub
  100.     Private Sub nudInterval_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles nudInterval.ValueChanged
  101.         tmrTrackMouse.Interval = nudInterval.Value
  102.         tmrPlay.Interval = nudInterval.Value
  103.     End Sub
  104. End Class