IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Ouvrir une application à l'ouverture du programme


Sujet :

Windows Forms

  1. #1
    Membre confirmé Avatar de getz85
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2008
    Messages : 423
    Points : 462
    Points
    462
    Par défaut Ouvrir une application à l'ouverture du programme
    Bonsoir,

    Je voudrais que VLC s'ouvre à l'ouverture de mon application.

    J'ai trouvé ces lignes dans la FAQ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    // Instance de la classe Process
                    System.Diagnostics.Process proc = new System.Diagnostics.Process();
                    // Nom de l'executable à lancer
                    proc.StartInfo.FileName = "vlc.exe";
                    // Démarrage du processus
                    proc.Start();
                    // On libère les ressources dont on n'a plus besoin.
                    proc.Close(); // Attention Close ne met pas fin au processus.
    Mais j'ai un message d'erreur : le fichier spécifié est introuvable

    Merci d'avance.

  2. #2
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Filename correspond au chemin ou se trouve l'application :

    soit par exemple : "C:\Program Files\...\vlc.exe"

  3. #3
    Membre confirmé Avatar de getz85
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2008
    Messages : 423
    Points : 462
    Points
    462
    Par défaut
    Merci de ta réponse.
    Dans la faq, il n'est pas marqué un chemin d'accès, mais "iexplorer.exe".
    De plus, le chemin d'accès ne serait pas satisfaisant car il peut varier d'un utilisateur à l'autre...

  4. #4
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Ok, pour le coup il va peut-être falloir regarder ailleurs... peut-être du côté de FindExecutable() de l'API Win32 Shell... Pas mieux pour l'instant

  5. #5
    Membre confirmé Avatar de getz85
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2008
    Messages : 423
    Points : 462
    Points
    462
    Par défaut
    C'est bizarre puisque ce code marche avec d'autres processus comme firefox.exe par exemple...
    Je ne sais pas comment utiliser le FindExecutable() dont tu parles.

  6. #6
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Simplement que si on ne donne pas un chemin absolu à windows il va devoir le chercher automatiquement, donc il va chercher dans le dossier en cours, le dossier système et le PATH. Par défaut firefox, iexplore, cmd, etc y sont, mais peut être pas vlc.

  7. #7
    Membre confirmé Avatar de getz85
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2008
    Messages : 423
    Points : 462
    Points
    462
    Par défaut
    Ok, merci de ta réponse smyley.
    Je dois donc m'y prendre autrement...
    Tu n'as pas une idée pour l'ouvrir sans avoir à renseigner le chemin d'accès?

  8. #8
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Tu pourrai faire une recherche récursive de tous les fichiers présents dans Program Files (en cas d'échec, le faire sur les autres dossiers des disques sauf Program Files) pour trouver vlc.exe et enregistrer une fois pour toute son chemin.
    Mais cette opération étant très longue il serai plus simple d'afficher une boite de dialogue à l'utilisateur lui demandant de renseigner le chemin vers vlc.

  9. #9
    Membre confirmé Avatar de getz85
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2008
    Messages : 423
    Points : 462
    Points
    462
    Par défaut
    Ok merci.
    Je ne vais surement pas faire de recherche récursive, c'est trop de travail pour pas grand chose au final.

    La boite de dialogue était ma première idée, mais je ne trouvais pas ça très pratique. Mais je vais procéder comme ça, a moins que quelqu'un ait une idée lumineuse

    Merci encore à vous deux!

  10. #10
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Ba tu peux peut-être mettre vlc.exe dans le répertoire de ton programme... A toi de le faire à l'installation.

    Au moins tu sais le situer


    Sinon pour utiliser FindExecutable() depuis C#, j'ai trouvé ce code :
    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
    using System;
    using System.Text;
    using System.Runtime.InteropServices;
     
    public class Win32API
    {
      [DllImport("shell32.dll", EntryPoint="FindExecutable")] 
      public static extern long FindExecutableA(
        string lpFile, string lpDirectory, StringBuilder lpResult);
     
      public static string FindExecutable(
        string pv_strFilename)
      {
        StringBuilder objResultBuffer = 
          new StringBuilder(1024);
        long lngResult = 0;
     
        lngResult = 
          FindExecutableA(pv_strFilename, 
            string.Empty, objResultBuffer);
     
        if(lngResult >= 32)
        {
            return objResultBuffer.ToString();
        }
     
        return string.Format(
          "Error: ({0})", lngResult);
      }
    }
    Tu pourras en donnant en paramètre à cette fonction le nom du répertoire déterminer les exe.
    Mais ça sous-entend recherche récursive...

  11. #11
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par binoo Voir le message
    Mais ça sous-entend recherche récursive...
    Heuu non ...
    En fait ce n'est pas à ça que sert la fonction FindExecutable.
    Par exemple :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    MessageBox.Show(FindExecutable("D:\\TestDb.txt"));
    Renvoi C:\Windows\System32\NOTEPAD.exe. Pourquoi ?
    Citation Envoyé par MSDN
    Retrieves the name of and handle to the executable (.exe) file associated with a specific document file.
    Donc en gros ça retourne l'application utilisée pour ouvrir un certain fichier si le fichier existe, sinon ça renvoi rien.

  12. #12
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Oui c'est juste
    Je n'avais pas vraiment cerné la fonctionnalité de FindExecutable(). C'était à vrai dire une recherche en live

    Merci.

Discussions similaires

  1. Ouvrir une application
    Par liverbird dans le forum C++
    Réponses: 10
    Dernier message: 13/07/2006, 19h43
  2. Réponses: 13
    Dernier message: 01/05/2006, 14h00
  3. ouvrir une application access périodiquement
    Par cheucheu dans le forum Access
    Réponses: 6
    Dernier message: 22/12/2005, 16h53
  4. Lancer une application à partir d'un programme
    Par Bouguennec dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 05/11/2005, 19h02
  5. Réponses: 1
    Dernier message: 31/10/2002, 11h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo