J'ai donc essayé de me connecter automatiquement via un client WinSCP. J'ai toutes les informations d'identification enregistrées dans le client pour le moment où je l'ouvre. Si j'appuie manuellement sur Enter
sur mon clavier, le client se connectera. J'ai essayé d'utiliser le robot
méthode créditée à @Slanec
Robot r = new Robot();
r.keyPress(KeyEvent.VK_ENTER);
r.keyRelease(KeyEvent.VK_ENTER);
Cependant, lorsque j'ai vérifié l'API Java, il semble que cela ne serve qu'à vérifier si l'utilisateur a appuyé sur une touche ou non ?
Quoi qu'il en soit... voici le code que j'ai actuellement. Le code ouvre l'invite de commande et entre un chemin de fichier spécifié pour ouvrir une application spécifique WinSCP. Une fois l'application ouverte, je veux que le Enter
Il faut appuyer sur la touche pour que je puisse me connecter. Si j'appuie manuellement sur la touche Entrée au cours de ce processus, tout se passe bien. Mais est-il possible de faire en sorte que le code Java appuie sur la touche Entrée à ma place afin que le processus soit entièrement automatique ? J'ai ajouté le programme pour qu'il se termine au bout de 5 secondes, simplement à des fins de test. Toute contribution serait grandement appréciée.
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.io.IOException;
public class runADP
{
public static void main(String[] args)
{
try
{
System.out.println("Opening WinSCP");
Runtime runTime = Runtime.getRuntime();
Process process = runTime.exec("C:\\Program Files (x86)\\WinSCP\\WinSCP.exe");
try
{
Thread.sleep(5000);
Robot r = null;
try
{
r = new Robot();
r.keyPress(KeyEvent.VK_ENTER);
r.keyRelease(KeyEvent.VK_ENTER);
}
catch (AWTException e)
{
e.printStackTrace();
}
}
catch (InterruptedException e)
{
e.printStackTrace();
}
System.out.println("Closing WinSCP");
process.destroy();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}