Lancement d'un exe à partir d'un dossier spécifique [Résolu]

babaOrhumette 96 Messages postés mardi 14 avril 2009Date d'inscription 2 juin 2016 Dernière intervention - 14 avril 2009 à 11:00 - Dernière réponse : babaOrhumette 96 Messages postés mardi 14 avril 2009Date d'inscription 2 juin 2016 Dernière intervention
- 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.

Mon code actuel : (qui ne me va pas)
void Button10Click(object sender, EventArgs e)
        {
            System.Diagnostics.Process.Start("pouet.exe"); 
        }

Le code ci-dessus, lance bien l'executif pouet.exe si 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

babaOrhum
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
babaOrhumette 96 Messages postés mardi 14 avril 2009Date d'inscription 2 juin 2016 Dernière intervention - 14 avril 2009 à 13:53
3
Merci
Pardon, le véritable code :

void Button10Click(object sender, EventArgs e)
        {

            System.Diagnostics.ProcessStartInfo myInfo = new System.Diagnostics.ProcessStartInfo();
            myInfo.FileName = "pouet.exe";
            myInfo.WorkingDirectory = Application.StartupPath;
            System.Diagnostics.Process.Start(myInfo);

            }

Résolu.

Merci babaOrhumette 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 68 internautes ce mois-ci

Commenter la réponse de babaOrhumette
krimog 1863 Messages postés lundi 28 novembre 2005Date d'inscription 14 février 2015 Dernière intervention - 14 avril 2009 à 11:39
0
Merci
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");

Krimog :
while (!(succeed = try())) ;
Commenter la réponse de krimog
krimog 1863 Messages postés lundi 28 novembre 2005Date d'inscription 14 février 2015 Dernière intervention - 14 avril 2009 à 12:02
0
Merci
Correction : il y a beaucoup plus simple :

Je crois que Application.StartupPath doit être exactement ce que tu veux.

Krimog :
while (!(succeed = try())) ;
Commenter la réponse de krimog
babaOrhumette 96 Messages postés mardi 14 avril 2009Date d'inscription 2 juin 2016 Dernière intervention - 14 avril 2009 à 12:12
0
Merci
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;

void Button10Click(object sender, EventArgs e)
        {
                OFD4.RestoreDirectory = true;
                System.Diagnostics.Process.Start("pouet.exe");
               
            }
Mais ça ne fonctionne pas non plus, j'ai le même message d'erreur à savoir : "Le fichier spécifique est introuvable".

Si vous avez d'autres idées.

Merci d'avance.
Commenter la réponse de babaOrhumette
babaOrhumette 96 Messages postés mardi 14 avril 2009Date d'inscription 2 juin 2016 Dernière intervention - 14 avril 2009 à 12:32
0
Merci
Je pense avoir résolution mon pb, merci encore!

void Button10Click(object sender, EventArgs e)
        {

            System.Diagnostics.ProcessStartInfo myInfo = new System.Diagnostics.ProcessStartInfo();
            mypouet.FileName = "pouet.exe";
            mypouet.WorkingDirectory = Application.StartupPath;
            System.Diagnostics.Process.Start(mypouet);

            }

Bonne journée.
Commenter la réponse de babaOrhumette
krimog 1863 Messages postés lundi 28 novembre 2005Date d'inscription 14 février 2015 Dernière intervention - 14 avril 2009 à 13:58
0
Merci
"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).

Krimog :
while (!(succeed = try())) ;
Commenter la réponse de krimog
babaOrhumette 96 Messages postés mardi 14 avril 2009Date d'inscription 2 juin 2016 Dernière intervention - 14 avril 2009 à 20:00
0
Merci
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.

Merci.
Commenter la réponse de babaOrhumette

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.