Casino online









Mercato forex







Appunti



Simulare muose e tastiera da codice


Prima di iniziare a simulare la pressione dei tasti della tastiera e del mouse e i movimenti di quest'ultimo, è importante sapere come intercettare tali eventi. A questo scopo faremo uso di una funzione presente nella libreria user32.dll di windows: il suo nome è GetAsyncKeyState, e ci fornisce informazioni sullo stato di un pulsante, se è premuto oppure no. La sua dichiarazione avviene come nel vecchio vb6:
Declare Auto Function GetAsyncKeyState Lib "user32.dll" (ByVal _ 
vKey As Int32) As Int16
Il parametro accettato costituisce il codice numerico del tasto da controllare. Per sapere il codice di un tasto, è possibile utilizzare un enumeratore davvero comodo: System.Windows.Forms.Keys. Ad esempio, per sapere se in un determinato momento il tasto A è premuto, scriveremo:
If GetAsyncKeyState(Keys.A) = 0 Then
  MsgBox("A non è premuto!", MsgBoxStyle.Information)
Else
  MsgBox("A è premuto!", MsgBoxStyle.Information)
End If
Tuttavia, poichè la funzione restituisce lo stato di un pulsante nel momento in cui viene chiamata, è opportuno inserire tale codice nell'evento Tick di un timer, allo scopo di monitorarne le modifiche.

Per simulare la pressione di un pulsante della tastiera, dovremo fare uso di questa procedura:
Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, _ 
ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
Solo il primo parametro è importante: è il codice del tasto da premere. Tuttavia, anche il secondo parametro, bScan, può giocare un ruolo importante: infatti esso comunica quale azione debba essere eseguita sul pulsante, se premuto, rilasciato o entrambi (0).

Per simulare la pressione di un pulsante del mouse, dovremo fare uso di questa procedura:
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)
Possiamo prendere come significativi i primi tre parametri: il primo indica quale pulsante e come deve essere premuto, mentre il secondo ed il terzo, se diversi da 0, specificano le coordinate a cui deve avvenire il click. Se queste ultime sono 0, il click sarà generato nella posizione in cui il mouse si trova. Questo enumeratore, specifica i possibili valori di dwFlags:
Public Enum MouseEventTFlags
  LEFTDOWN = 2
  LEFTUP = 4
  MIDDLEDOWN = 32
  MIDDLEUP = 64
  RIGHTDOWN = 8
  RIGHTUP = 16
End Enum

Per simulare il movimento del mouse è sufficiente far uso della classe Cursor, nella quale si può modificare la proprietà Location a proprio piacimento, cambiando quindi la posizione del mouse sullo schermo.




 

The Totem's Lair - Copyright (C) 2009
È vietata la riproduzione sia totale che parziale del sito.