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

C Discussion :

Besoin d'aide pour la commande ShellExecute


Sujet :

C

  1. #1
    Nouveau membre du Club Avatar de samy100
    Inscrit en
    Avril 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 96
    Points : 34
    Points
    34
    Par défaut Besoin d'aide pour la commande ShellExecute
    Bonjour, je voudrais que mon programme puisse ouvrir un fichier ( pour l'instant je travail que sur l'inviter de commandes ) et quelqu'un ma dit que pour ce faire je devais utiliser la fonction ShellExecute mais je ne sais pas comment l'utiliser si vous pouvez m'aider
    merci


    Ps: je suis a l'école donc si vous pouvez repondre je lirai vos reponses dans 4 petites heures ... merci

  2. #2
    Membre confirmé Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416
    Points : 489
    Points
    489
    Par défaut
    system() dans stdlib.h.

  3. #3
    Nouveau membre du Club Avatar de samy100
    Inscrit en
    Avril 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 96
    Points : 34
    Points
    34
    Par défaut
    Mais je voudrais savoir pour la commande ShelleExecute
    merci

    ou sinon si c'est trop compliquer est-ce quevous pouvez m'expliquer avec la commande system ()

    merci

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 380
    Points : 41 576
    Points
    41 576
    Par défaut
    ShellExecute() sert à faire ouvrir un fichier par le programme associé (exemple, si Windows Media Player est installé et que le fichier TentaclePorn.avi existe dans le répertoire courant, cet appel de fonction devrait ouvrir le TentaclePorn.avi avec Windows Media Player:
    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
    int nExecRes = (int)ShellExecute(
     NULL,         /*Pas de fenêtre impliquée*/
     NULL,         /*Opération par défaut: Généralement "ouvrir" ou "lecture"*/
     TEXT("TentaclePorn.avi"), /*Nom du fichier*/
     NULL,         /*Pas de paramètres (ce n'est pas un exécutable (.exe))*/
     NULL,         /*Pas de dossier spécifié*/
     SW_SHOWNORMAL /*Afficher en fenêtre normale.*/
     );
    if(nExecRes > 32)
    	{
    	/* OK */
    	}
    else
    	{
    	/* Erreur */
    	}

  5. #5
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Médinoc
    TEXT("TentaclePorn.avi"), /*Nom du fichier*/
    Ca a l'air interessant ce que tu regardes !

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 380
    Points : 41 576
    Points
    41 576
    Par défaut
    Ah?
    Au début je voulais mettre un simple fichier excel, mais je ne trouvais pas de nom NSFW qui convienne à un fichier excel... Alors je me suis rabattu sur un .avi, la solution de facilité.

  7. #7
    Membre confirmé Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416
    Points : 489
    Points
    489
    Par défaut
    Un exemple avec system et passage de paramètre.
    Si firefox est déjà ouvert il ouvre un nouvel onglet.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include <stdlib.h>
     
    int main ()
    {
      system("firefox http://www.google.fr/search?q=shellexecute&start=0");
     
      return 0;
    }

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 380
    Points : 41 576
    Points
    41 576
    Par défaut
    Mais là, ça oblige à ce que firefox soit installé.
    Un ShellExecute() sur une page web enregistrée (j'ignore si ça marche sur une adresse web, mais j'en doute), ouvrira le navigateur associé, quel qu'il soit.

  9. #9
    Membre confirmé Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416
    Points : 489
    Points
    489
    Par défaut
    Ca n' oblige rien du tout c'est un exemple. D' ailleurs puisque tu as soulevé la question d' excel ce serait
    system("c:\progs\excel.exe d:\monclasseur.xls");
    Respectivement 3e et 4e paramètres de shellexecute().

    system() est une fonction C ANSI, portabilité assurée.
    Perso je penche plutôt pour la fonction popen().

    Samy, merci de préciser quel fichier tu veux ouvrir.

  10. #10
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 380
    Points : 41 576
    Points
    41 576
    Par défaut
    Ca n' oblige rien du tout c'est un exemple. D' ailleurs puisque tu as soulevé la question d' excel ce serait
    system("c:\progs\excel.exe d:\monclasseur.xls");
    Respectivement 3e et 4e paramètres de shellexecute().
    Ben non. Comment le programme sait-il que l'utilisateur a bien excel et non pas OpenOffice ?

    Et pour ShellExecute(), ne parles pas de ce que tu ne connais pas, on aurait simplement TEXT("D:\\MonClasseur.xls")(oui, tu avais oublié de doubler les backslash) en 3e paramètre de ShellExecute(), et le 4e paramètre serait NULL.
    Et le fichier serait ouvert automatiquement par l'application associée aux fichiers .xls, quelle qu'elle puisse être.

  11. #11
    Nouveau membre du Club Avatar de samy100
    Inscrit en
    Avril 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 96
    Points : 34
    Points
    34
    Par défaut
    Pour ouvrir un fichier image simple '.jpeg'

  12. #12
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 380
    Points : 41 576
    Points
    41 576
    Par défaut
    Avec ShellExecute(), pas du tout.
    Mais tout dépend de ta notion de "Ouvrir".

    Si tu veux que ton programme fasse des trucs avec l'image, system() et ShellExecute() ne sont pas fait pour toi.
    Mais si tu veux juste qu'elle soit affichée par un programme externe, il te suffit de faire un ShellExecute() dessus: L'image sera ouverte dans le programme associé aux fichiers .jpg, par exemple l'aperçu rapide ou Paint...

    En fait, La commande ShellExecute() que j'ai tapée produit le même effet qu'un double-clic sur le fichier dans l'explorateur. C'est le rôle de ShellExecute().

  13. #13
    Nouveau membre du Club Avatar de samy100
    Inscrit en
    Avril 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 96
    Points : 34
    Points
    34
    Par défaut
    Oui (re desoler pour mon retard) donc se serai pour faire comme tu as dis ouvrir un fichier avec un programme externe..Dois-je utiliser ton 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
     
    int nExecRes = (int)ShellExecute(
     NULL,         /*Pas de fenêtre impliquée*/
     NULL,         /*Opération par défaut: Généralement "ouvrir" ou "lecture"*/
     TEXT("FICHIER.avi"), /*Nom du fichier*/
     NULL,         /*Pas de paramètres (ce n'est pas un exécutable (.exe))*/
     NULL,         /*Pas de dossier spécifié*/
     SW_SHOWNORMAL /*Afficher en fenêtre normale.*/
     );
    if(nExecRes > 32)
    	{
    	/* OK */
    	}
    else
    	{
    	/* Erreur */
    	}
    Merci

  14. #14
    Nouveau membre du Club Avatar de samy100
    Inscrit en
    Avril 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 96
    Points : 34
    Points
    34
    Par défaut
    RESOLU!!!
    Et oui un pote qui fait de la programmation m'a aidé (j'ai du lui forcer la main il aime pas aider les gens :p) bref merci pour toutes vos reponses!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin d'aide pour command mirc
    Par PMelgibson dans le forum IRC / mIRC
    Réponses: 1
    Dernier message: 27/01/2014, 16h07
  2. Besoin d'aide pour une commande
    Par maxwell86 dans le forum PL/SQL
    Réponses: 0
    Dernier message: 20/10/2008, 11h44
  3. besoin d'aide pour le composant DBComboBox
    Par jane2002 dans le forum Bases de données
    Réponses: 8
    Dernier message: 28/02/2004, 19h01
  4. [TP]besoin d'aide pour commandes inconnues
    Par Upal dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 03/10/2002, 10h48
  5. Besoin d'aide pour l'I.A. d'un puissance 4
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 17h05

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