comment obtenir le mot de passe wifi de cmd avec java


J'essaie de fournir mon mot de passe de connexion wifi avec java. mais je dois le faire en tant qu'administrateur.

try {
    Process p = Runtime.getRuntime().exec("netsh.exe wlan show profiles name=superonline key=clear");
    BufferedReader bf = new BufferedReader(new InputStreamReader(p.getInputStream()));
    while (bf.readLine() != null)
        System.out.println(bf.readLine());
} catch (Exception ex) {
    ex.printStackTrace();
}

Quand je l'essaie en tant qu'utilisateur standard:

entrez la description de l'image ici

Quand je l'essaie en tant qu'administrateur:

Comment faire cela dans le code java?

entrez la description de l'image ici

Author: Mike, 2015-12-28

2 answers

Utilisez la classe java.util.Scanner:

Process p = Runtime.getRuntime().exec("netsh wlan show profiles name=superonline key=clear"); 
Scanner sc=new Scanner(p.getInputStream());
while (sc.hasNextLine()) {
    System.out.println(sc.nextLine());
}
 0
Author: nickkoro, 2016-02-25 18:59:11

Vous ne pouvez pas obtenir ce type d'accès avec java.

Le mieux que vous puissiez faire est d'envelopper la sortie de la commande dans InputStream et d'essayer de lire les données à partir de là

  public static void main(String[] args) {
   try {
   // create a new process
   System.out.println("Creating Process...");
   Process p = Runtime.getRuntime().exec("netsh.exe wlan .......");

   // get the input stream of the process and print it
   InputStream in = p.getInputStream();
   for (int i = 0; i < in.available(); i++) {
   System.out.println("" + in.read());
   }

   // wait for 10 seconds and then destroy the process
   Thread.sleep(10000);
   p.destroy();

   } catch (Exception ex) {
   ex.printStackTrace();
   }

   }
 0
Author: George Moralis, 2015-12-28 10:14:08