codice:
Public Class Form1
Private X As Integer
Private Y As Integer
Private shift As Integer = 5
Private valoreRitorno As Integer = 0
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Integer) As Integer
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim i As Integer = 0
For i = 37 To 40
valoreRitorno = GetAsyncKeyState(i)
If valoreRitorno = -32767 Then
X = Windows.Forms.Cursor.Position.X
Y = Windows.Forms.Cursor.Position.Y
Select Case i
Case 37 'SIN
Windows.Forms.Cursor.Position = New System.Drawing.Point(X - shift, Y)
Case 38 'SU
Windows.Forms.Cursor.Position = New System.Drawing.Point(X, Y - shift)
Case 39 'DX
Windows.Forms.Cursor.Position = New System.Drawing.Point(X + shift, Y)
Case 40 'GIU'
Windows.Forms.Cursor.Position = New System.Drawing.Point(X, Y + shift)
Case Else
'...
End Select
End If
Next i
End Sub
End Class
premetto che non ne so niente di programmazione vb.net,
ho questo codice che dovrebbe muovere il cursore del mouse con la tastiera,
ma avrei bisogno di un paio di piccole modifiche:
- disattivare e attivare l'"ascolto" del programma tramite una scorciatoia (ctrl+alt+qualcosa)
- se possibile, solo quando il programma è attivo, sostituire il cursore con un altro (sempre in formato .cur)
ps: se qualcuno può anche dirmi come faccio a compilare e creare l'exe avendo Visual Basic 2008 Express Edition gliene sarei grato (copiando il codice mi dice "Errore1 La clausola Handles richiede una variabile WithEvents definita nel tipo che la contiene o in uno dei suoi tipi di base."