Domanda tastiera macro

Stato
Discussione chiusa ad ulteriori risposte.

Indiana

Utente Bronze
3 Dicembre 2013
28
13
1
49
Buon salve a tutti. Come da titolo vorrei, se possibile creare un programma in Java di macro. Mi spiego: le tastiere da gaming hanno alcuni tasti adibiti per le macro ( premi ad esempio il tasso 1 e in automatico la macro attiva i tasti A,W,S,D). Non avendo tale tipologia di keyboard e non volendo comprarne una vorrei crearmi io il programma in Java, se possibile. Ho già usato la classe Robot ma adesso da quello che ho capito devo usare una sorta di keylogger
(keylistener) per poter registrare la pressione del tasto ( ad esempio il tasto A e fargli compiere una sequenza di azioni--> premo A e la macro mi esegue ad esempio i tasti AWSD)
È possibile fare ciò con Java?ricordando che vorrei poter impostare anche il tempo di esecuzione di ogni tasto.
Grazie
 
Ultima modifica:
Dovresti usare degli hook, nè tanto meno sono sicuro che sia possibile farlo - inoltre hai dimenticato la parte più importante.
Dopo aver premuto un tasto, è AWT che chiamerà il metodo keyPressed(). Dopo un piccolo delay (tipicamente dai 250 ai 1000 millisecondi) inizia a chiamare questo metodo più volte con un delay ridotto (eg. verso i 100ms). Per modificare questi "delay" puoi controllarli (almeno su Windows) attraverso le proprietà della tastiera dal pannello di controllo.
Una volta che il tasto è stato rilasciato, smette di chiamare keyPressed() e chiama al suo posto keyReleased() (dovrei sottolineare pure che gli eventi di ripetizione vengono inviati solo per un tasto).

La logica corretta è la seguente:
1zfjvig.png

Il metodo refresh() va chiamato ripetutamente e con un tasso costante.

Per premere un tasto hai detto bene, puoi utilizzare facilmente la classe Robot:
2j4q16p.png
 
Stato
Discussione chiusa ad ulteriori risposte.