Bonjour,
J'ai fais un petit outil bien sympathique, mais hélas la fonction Windows Update n'est pas/plus fonctionnelle sur Win10.
Les coquins de chez Microsoft ont supprimé toutes les valeurs registre et dll se rapportant soit à wuapp soit à la valeur shell correspondante.
Pour ce faire j'ai besoin d'extraire une valeur du registre pour classifier les versions de Windows, puis ensuite exploiter ce ''nombre" qui est en fait un String (aide).
Cela c'est pour ma 1ére méthode.
Comme je suis un tordu par nature mais aussi très curieux, pour que ma solution fonctionne dans le + de cas possible, je vais devoir adapter une autre partie du code sur la langue de l'Os.
Par exemple:
Anglais US => us-US
Canada CA => ca-CA
Français FR => fr-FR
N'ayant que très peu de connaissance en Java, vous comprenez bien que je suis très vite limité.
Cependant, j'ai bien compris cette partie de code
Qui met en avant l'extraction de la valeur proxyserver. Donc l'adaptation à mon cas revient à produire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 try { Process p = new ProcessBuilder( "reg", "query", "\"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\"", "/v", "proxyserver").start();
Le but étant sous 8.1 de récupérer "6.3" est sous win10 "10.0".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 public class registre{ static String Version(String inputLine){ try { Process p = new ProcessBuilder( "reg", "query", "\"HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion\"", "/v", "currentversion").start(); BufferedReader in = new BufferedReader(new InputStreamReader(p .getInputStream())); while ((inputLine = in.readLine()) != null) { System.out.println(inputLine); } } // fin de try catch (Exception e) {} return inputLine; } // fin de Version
Sachant que 6.3 et 10.0 sont des String il faudra ensuite les convertir en int afin de pouvoir faciliter l'utilisation de if pour procéder ainsi.
Ici j'ai gardé le mode String car je ne sais pas si c'est bon de faire cette conversion String vers int
L'avantage du int permettrait de faire un if >= 10 ainsi, toutes les versions supérieures seraient englobées (sauf si chez Microsoft ils changent encore la numérotation)
Donc en fonction de la valeur de inputLine, j'aurais plusieurs if.
Mon Main
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 if (inputLine.equals("6.3") ){ Runtime runtime = Runtime.getRuntime(); try { runtime.exec(new String[] { "C:\\Windows\\explorer.exe", "shell:::{36eef7db-88ad-4e81-ad49-0e313f0c35f8}" } ); } catch (Exception e) {} }
La question générale est:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public static void main(String args[]) { Terminal.ecrireStringln("La version de windows est: " + Version(inputLine)); }
Comment récupérer dans une fonction la version de windows et la langue?
Merci de m'avoir lu.
Labougie
Partager