Lancer un programme (Java)
SoGeek
Messages postés
183
Date d'inscription
Statut
Membre
Dernière intervention
-
SoGeek Messages postés 183 Date d'inscription Statut Membre Dernière intervention -
SoGeek Messages postés 183 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je voudrais savoir si il est possible de lancer un programme déjà installé sans passer par l'icône ni par un raccourci, ni par le .exe du programme, et sans connaitre l'emplacement du programme, sous Java
je m'explique :
J'ai crée une application qui nécéssite de passer par Steam.exe mais il faut donc trouver l'emplacement du .exe ou du raccourci, j'ai pensé a "if exist", mais comme il peut avoir enormément de répertoires différents où peut être installé Steam, j'aimerai donc savoir si il existe de lancer un programme sans passer par le .exe ou l'icône, ou le raccourci en Java.
Merci d'avance
SoGeek.
Je voudrais savoir si il est possible de lancer un programme déjà installé sans passer par l'icône ni par un raccourci, ni par le .exe du programme, et sans connaitre l'emplacement du programme, sous Java
je m'explique :
J'ai crée une application qui nécéssite de passer par Steam.exe mais il faut donc trouver l'emplacement du .exe ou du raccourci, j'ai pensé a "if exist", mais comme il peut avoir enormément de répertoires différents où peut être installé Steam, j'aimerai donc savoir si il existe de lancer un programme sans passer par le .exe ou l'icône, ou le raccourci en Java.
Merci d'avance
SoGeek.
A voir également:
- Lancer un programme (Java)
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Lancer un programme au démarrage windows 10 - Guide
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
8 réponses
Normalement Steam crée des clés registres pour indiquer où il est installer.
Il te reste donc à fouiller ces clés registres et à ensuite vérifier si Steam.exe existe bien dans l'emplacement donné par la clé registre (si tu l'a trouvée aussi, sinon c'est que Steam n'est pas installé ^^).
Il te reste donc à fouiller ces clés registres et à ensuite vérifier si Steam.exe existe bien dans l'emplacement donné par la clé registre (si tu l'a trouvée aussi, sinon c'est que Steam n'est pas installé ^^).
Bonjour scriptiz,
oui en effet j'ai trouvé la clef registre de Steam indiquant le répertoire d'installation, mais maintenant comment l'utilisée sur les autres ordinateurs ? parceque Steam est certainement installer autrepart sur les autres ordinateurs, je voudrais donc connaitre l'emplacement d'installation, mais je ne sais pas comment utiliser cette clef registre, en tout cas je l'ai bien trouvée avec les données "D:\Steam\steam.exe" "%1"
oui en effet j'ai trouvé la clef registre de Steam indiquant le répertoire d'installation, mais maintenant comment l'utilisée sur les autres ordinateurs ? parceque Steam est certainement installer autrepart sur les autres ordinateurs, je voudrais donc connaitre l'emplacement d'installation, mais je ne sais pas comment utiliser cette clef registre, en tout cas je l'ai bien trouvée avec les données "D:\Steam\steam.exe" "%1"
Tu peux te servire d'une API pour accéder au registre Windows à partir de Java.
Un exemple :
http://www.trustice.com/java/jnireg/
La clé registre sera toujours située au même endroit donc tu pourra la récupérer, ensuite avec son contenu créé le chemin vers le fichier Steam.exe
Bonne chance
Un exemple :
http://www.trustice.com/java/jnireg/
La clé registre sera toujours située au même endroit donc tu pourra la récupérer, ensuite avec son contenu créé le chemin vers le fichier Steam.exe
Bonne chance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
En fait tu n'a pas besoin de l'API que je t'ai donnée, il y a des classes toutes faites dans l'API de base de Java qui te permette de toucher au registre.
Voici un exemple de code, je te laisse fouiller sur Google pour plus de détails :
PS : voici la documentation de la classe java.util.prefs.Preferences >>> https://docs.oracle.com/javase/6/docs/api/java/util/prefs/Preferences.html
Voici un exemple de code, je te laisse fouiller sur Google pour plus de détails :
import java.util.prefs.Preferences; public class Test { public static void main(String[] args) { Preferences lPrf = Preferences.userRoot().node( "Test/My App" ); lPrf.put( "My Key", "My Data" ); System.out.println( lPrf.get( "My Key", "default" ) ); } }
PS : voici la documentation de la classe java.util.prefs.Preferences >>> https://docs.oracle.com/javase/6/docs/api/java/util/prefs/Preferences.html
Un exemple plus complet en fait :
https://coderanch.com/t/132336/engineering/Read-Windows-Registry-java
https://coderanch.com/t/132336/engineering/Read-Windows-Registry-java
Voici la solution qui fonctionne (que j'ai passée à SoGeek par MP) si elle peut servir pour d'autres :
Elle récupère donc le chemin d'installation de Steam dans le registre (dans la variable path) et l'imprime à l'écran.
import java.io.*; public class ReadReg { public static void main(String[] args) throws IOException { Process myProcess = null; InputStream myOut = null; try { myProcess = Runtime.getRuntime().exec("reg query HKEY_CLASSES_ROOT\\steam\\Shell\\Open\\Command /ve"); myOut = myProcess.getInputStream(); } catch (IOException e) { System.out.println(e.getMessage()); } String s = ""; int b = -1; do { try { if(b != -1) s += (char)b; b = myOut.read(); } catch(IOException e) { System.out.println(e.getMessage()); } } while(b != -1); // on sépare les zones délimitées par des tabulations //String[] splitted = s.split("\t"); String[] splitted = s.split("\""); // on sépare les zones délimitées par des " dans la bonne partie //String[] splitted2 = splitted[2].split("\""); // on récupère le chemin de l'application //String path = splitted2[1]; String path = splitted[1]; // on affiche le chemin de l'application System.out.println(path); } }
Elle récupère donc le chemin d'installation de Steam dans le registre (dans la variable path) et l'imprime à l'écran.
et PS : pour inserer la variable path au GetRuntime.exec voilà la solution
{ Runtime t = Runtime.getRuntime();
try {
Process p = t.getRuntime().exec(path+ " -applaunch 240 -console +connect "+ip.getText()+" +password "+mdp.getText());
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace(); }
Cordialement,
& Encore grand merci à scriptiz
SoGeek.
PS : Je peux aider par MP pour le Batch et pour le Hardware :)
{ Runtime t = Runtime.getRuntime();
try {
Process p = t.getRuntime().exec(path+ " -applaunch 240 -console +connect "+ip.getText()+" +password "+mdp.getText());
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace(); }
Cordialement,
& Encore grand merci à scriptiz
SoGeek.
PS : Je peux aider par MP pour le Batch et pour le Hardware :)