Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Programma java che scrive automaticamente sulla tastiera

    Salve a tutti!
    Vorrei fare un semplice programma in java,che chiede la stringa da inserire all'utente,e poi dopo tot secondi,la scrive attraverso la tastiera e preme invio.
    So che è possibile farlo,ma con che metodi?

    grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Programma java che scrive automaticamente sulla tastiera

    Originariamente inviato da konqueror
    Vorrei fare un semplice programma in java,che chiede la stringa da inserire all'utente,e poi dopo tot secondi,la scrive attraverso la tastiera e preme invio.
    Alt ... che vuol dire "la scrive attraverso la tastiera"??? Che "simuli" la pressione dei tasti? All'interno della tua stessa applicazione Java o, in generale, del sistema??? Per quest'ultimo caso vedi keyPress()/keyRelease() di java.awt.Robot.

    Altrimenti spiega meglio cosa intendi fare.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Ciao Andbin!
    SI effettivamente volevo dire quello che hai inteso,e sono i metodi che mi servono.
    Però siccome il parametro non è affatto una stringa ma un intero,non so come posso passargli la stringa come argomento.
    Cioè dovrei convertire ogni carattere della stringa e invocare il metodo keypress per n caratteri?
    Potresti consigliarmi un modo più rapido per stampare a video la stringa?

    grazie

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da konqueror
    SI effettivamente volevo dire quello che hai inteso,e sono i metodi che mi servono.
    Innanzitutto dovresti spiegare meglio perché vuoi fare una cosa del genere ... insomma, quale è il tuo obiettivo finale??

    Originariamente inviato da konqueror
    Però siccome il parametro non è affatto una stringa ma un intero,non so come posso passargli la stringa come argomento.
    Cioè dovrei convertire ogni carattere della stringa e invocare il metodo keypress per n caratteri?
    Sì, keyPress seguito da keyRelease per ogni carattere. Con qualche complicanza in più: i codici VK_xxx non rappresentano tutti i caratteri ad esempio non c'è maiuscolo/minuscolo, dovresti essere tu a "simulare" lo shift e cose del genere!!!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Vorrei creare un semplice programma che chiede all'utente di inserire una stringa,e poi questa stringa viene scritta a video dopo tot secondi (attraverso un thread.sleep).

    Ad esempio questo codice,dopo due secondi dovrebbe scrivere per 100 volte un carattere,che non so nemmeno qual è.Dopo due secondi mi sono già posizionato col cursore su un'altra finestra,ma non vedo scrivere niente.Come mai?
    codice:
    import java.awt.AWTException;
    import java.awt.Robot;
    public class Key {
    	public static void main(String[] args) throws AWTException, InterruptedException {
    		Robot rob = new Robot();
    		Thread.sleep(2000);
    		for (int i=0;i<100;i++) {
    		rob.keyPress(98);
    		rob.keyRelease(98);
    		}
    	}
    }

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da konqueror
    Dopo due secondi mi sono già posizionato col cursore su un'altra finestra
    Se quello che vuoi è questo, cioè poter "iniettare" la pressione dei tasti in una qualunque finestra (anche non della tua applicazione java), allora non ci sono altre strade (più semplici) rispetto a Robot.

    Originariamente inviato da konqueror
    rob.keyPress(98);
    rob.keyRelease(98);
    98 è il valore della costante KeyEvent. VK_NUMPAD2 che chiaramente immagino non è quello che volevi!

    Vorrei che ti fosse chiaro che quel codice non è un codice ASCII puro ... è un key code di quelli indicati nella documentazione di KeyEvent ad esempio VK_A, VK_DOWN, ecc...

    Alcuni di questi key code, per comodità, hanno lo stesso codice del ASCII (i digit e le lettere). Altri no, sono totalmente diversi e con altri significati. Ecco perché non è banale iniettare una qualunque stringa!!!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Domanda: ma essendo un char in realtà un intero, non puoi scorrere la stringa carattere per carattere (metodo charAt(int index)) e passare il carattere prelevato ai due metodi?
    Al mio segnale... scatenate l'inferno!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.