babaOrhumette
Messages postés104Date d'inscriptionmardi 14 avril 2009StatutMembreDernière intervention 7 avril 2019
-
14 avril 2009 à 11:00
babaOrhumette
Messages postés104Date d'inscriptionmardi 14 avril 2009StatutMembreDernière intervention 7 avril 2019
-
14 avril 2009 à 20:00
Bonjour,
Je débute dans la programmation c#. Je vais essayer d'être claire.
Mise en situation : Je crée actuellement un petit programme simple, que j'appelle sisi.exe. Il permet d'ouvrir des fichiers et de les modifier.
Mon but : Mais j'aimerai intégrer un bouton lanceur d'un executif : pouet.exe que je colle dans le même dossier que sisi.exe.
Le code ci-dessus, lance bien l'executif pouet.exesi et seulement si ce dernier est bien dans le dossier où j'ai été chercher le dernier fichier.
Ce qui se passe : Lorsque je lance mon programme sisi.exe et que j'appuie sur mon bouton10, pas de problème mon pouet.exe se lance.
Par contre, lorsque je lance sisi.exe, que j'ouvre un fichier et qu'ensuite j'appuie sur mon bouton10 : "Le fichier spécifique est introuvable". Là pas cool.
Ce que je voudrais : J'aimerai que le bouton 10 aille toujours lancer le pouet.exe du dossier contenant sisi.exe (et non pas dans le dossier du dernier fichier ouvert).
En espérant avoir été précise, merci de vos éventuelles futures réponses.
Bonne
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 14 avril 2009 à 11:39
Salut
Tu peux connaître l'emplacement de ton exécutable (en l'occurrence sisi.exe) via le premier argument de Environment.CommandLine (et ce même si tu as fait "ouvrir avec").
Il te suffit donc de faire quelques manipulations de string dessus pour obtenir
le premier argument puis la totalité du chemin d'accès moins le nom de ton exe (sisi.exe).
Alors, tu exécutes System.Diagnostics.Process.Start(chemin + @"\pouet.exe");
babaOrhumette
Messages postés104Date d'inscriptionmardi 14 avril 2009StatutMembreDernière intervention 7 avril 20191 14 avril 2009 à 12:12
Bonjour et merci de cette réponse rapide.
Le problème c'est que ce programme est dédié à plusieurs amis, chacun mettra ce dernier où il veut sur son pc.
Je pense que le bouton 10 devrait partir du dossier-mére contenant mon sisi.exe et mon pouet.exe, mais je n'y arrive pas. Il me faudrait une ligne du genre : OpenFileDialog1.RestoreDirectory = true;
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 14 avril 2009 à 13:58
"chacun mettra ce dernier où il veut sur son pc"
=> J'avais bien compris, mais je n'ai rien de statique dans la solution que je t'ai fourni.
La première solution te permettait de trouver la valeur du chemin grâce à Environment.CommandLine (+ quelques traitements)
La deuxième te le donnait directement (Application.StartupPath);
Donc
string chemin = Application.StartupPath; // Ou le traitement de Environment.CommandLine
System.Diagnostics.Process.Start(chemin + @"\pouet.exe");
Merci donc de lire et tester les solutions qu'on te donne (car en l'occurrence les 2 fonctionnaient).
babaOrhumette
Messages postés104Date d'inscriptionmardi 14 avril 2009StatutMembreDernière intervention 7 avril 20191 14 avril 2009 à 20:00
Comme je vous l'ai écrit en premier post, je suis une bille et je débute. Je n'ai malheureusement pas reussie à faire votre première solution.
La soluce que j'ai trouvée est en partie grâce à votre seconde réponse.