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

Langage Delphi Discussion :

Problème avec ShellExecute


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 28
    Points : 24
    Points
    24
    Par défaut Problème avec ShellExecute
    bonsoir,

    normalement shellexecute peut exécuter un programme ou ouvrir un fichier, mais je ne sais pas pourquoi cela ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     procedure TForm1.Button2Click(Sender: TObject);
    begin
     ShellExecute(Handle,'Open','C:\Users\hp\Desktop\Nouveau dossier (3)\chrome.exe',nil,Nil,SW_SHOWDEFAULT);
    end;
    quand je click sur le button rien ne ce passe

    Note: J'ai ajouter ShellAPI dans les uses

    sinon comment exécuter une application qui se trouve dans un dossier temp à partir d'un form
    merci

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 812
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 812
    Points : 13 527
    Points
    13 527
    Par défaut
    Que retourne la fonction ? Une valeur inférieure ou égale à 32 indique une erreur.

  3. #3
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 085
    Points : 15 490
    Points
    15 490
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Que retourne la fonction ? Une valeur inférieure ou égale à 32 indique une erreur.
    Tiens, je ne m'étais jamais fait la remarque que ShellExecute était une fonction : je l'ai toujours vu utilisé comme une procédure. Y a-t-il des constantes prédéfinies pour la valeur de retour ?

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 812
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 812
    Points : 13 527
    Points
    13 527
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    Tiens, je ne m'étais jamais fait la remarque que ShellExecute était une fonction : je l'ai toujours vu utilisé comme une procédure. Y a-t-il des constantes prédéfinies pour la valeur de retour ?
    Toutes celles énumérées sur MSDN.

  5. #5
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 494
    Points : 3 129
    Points
    3 129
    Par défaut
    et comme ça ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellExecute(Handle,'Open','"C:\Users\hp\Desktop\Nouveau dossier (3)\chrome.exe"',nil,Nil,SW_SHOWDEFAULT);


    euh ... non, rien à voir ! oublie


    Par contre, remplace ton chrome.exe par un notepad.exe (pris dans c:\windows) .... et retente le coup

  6. #6
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 085
    Points : 15 490
    Points
    15 490
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Toutes celles énumérées sur MSDN.
    Merci pour le lien.

  7. #7
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 494
    Points : 3 129
    Points
    3 129
    Par défaut
    Merci pour le lien. Peut-être la fonction suivante pourra-t-elle aider l'auteur de la discussion à résoudre son problème ?
    Cherchons pas plus loin pour le moment ! J'ai testé avec chrome comme dans l'exemple fourni par toti et ça ne fonctionne pas.
    Mais ça fonctionne avec notepad.
    Pourquoi ? Aucune idée ! Mais j'ai l'impression qu'il n'a pas eu de chance en choisissant justement le programme qui n'allait pas.

  8. #8
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Points : 5 918
    Points
    5 918
    Par défaut
    Bonjour,
    Citation Envoyé par Papy214 Voir le message
    Cherchons pas plus loin pour le moment ! J'ai testé avec chrome comme dans l'exemple fourni par toti et ça ne fonctionne pas.
    Mais ça fonctionne avec notepad.
    Pourquoi ? Aucune idée ! Mais j'ai l'impression qu'il n'a pas eu de chance en choisissant justement le programme qui n'allait pas.
    Je ne pense pas que la chance ait quelque chose à voir avec cela...

    Avez vous vérifié (outre le code d'erreur retourné par ShellExecute) que la commande fonctionnait depuis une fenêtre en lignes de commande (cmd.exe) ?
    il y a des espaces, donc saisir :"C:\Users\hp\Desktop\Nouveau dossier (3)\chrome.exe"

  9. #9
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 494
    Points : 3 129
    Points
    3 129
    Par défaut
    Je persiste et signe: Il suffit de reproduire ce qu'il a fait.
    Création nouveau dossier sur le bureau, copie de chrome.exe dans ce dossier, et tentative de lancement. Rien ne se passe.
    Je pense tout simplement que chrome a besoin d'autres fichiers situés dans son dossier d'installation et que ceux-ci ne sont pas trouvés.
    notepad.exe étant indépendant (sauf de windows), ça fonctionne.
    D'ailleurs, un simple double-clic sur l'exe suffit à le vérifier.


    [Window Title]
    C:\Users\moi\Desktop\Nouveau dossier(3)\chrome.exe

    [Content]
    C:\Users\moi\Desktop\Nouveau dossier(3)\chrome.exe

    L’application n’a pas pu démarrer car sa configuration côte-à-côte est incorrecte. Pour plus d’informations, consultez le journal d’événements d’applications ou utilisez l’outil de ligne de commande sxstrace.exe.


    [OK]
    Sauf que le ShellExecute n'affiche pas ce message et doit renvoyer le code erreur correspondant.

    Voili voilà !

  10. #10
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 665
    Points : 25 459
    Points
    25 459
    Par défaut
    En ajoutant un dossier et utilisant SW_SHOW
    et open en minuscule


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.Button2Click(Sender: TObject);
    begin
     ShellExecute(Handle,'open','C:\Users\hp\Desktop\Nouveau dossier (3)\chrome.exe',nil,'C:\Users\hp\Desktop\Nouveau dossier (3)', SW_SHOW);
    end;

  11. #11
    Membre averti Avatar de Moez.B
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Mars 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 219
    Points : 370
    Points
    370
    Par défaut
    Salut,

    Le problème est avec Chrome, il faut vérifier si tout le dossier Chrome Dans Application est copié vers le dossier sur le bureau où n'importe

  12. #12
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 28
    Points : 24
    Points
    24
    Par défaut
    Merci à tous pour l'aide

    l'Instructions de ShaiLeTroll fonctionne parfaitement dans le cas ou chrome est dans le fichier original

    Mais ça ne marche pas si on déplace chrom dans un fichier temp

    exist il un moyen pour exécuter chrom à partir d'un temp sans avoir besoin a deplacer

    tout les fichiers

  13. #13
    Membre averti Avatar de Moez.B
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Mars 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 219
    Points : 370
    Points
    370
    Par défaut
    Si c'est une version portable oui, sinon, si l'exécutable, seul dans un dossier ne fonctionne pas , alors il y a sûrement des dépendances entre Chrome et les fichiers autour ( je ne suis pas utilisateur de Chrome en tous cas mais de Mozilla ) .. enfin, il faudra peut être à réadapter ton besoin selon l'existant

  14. #14
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 28
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par Moez.B Voir le message
    Si c'est une version portable oui, sinon, si l'exécutable, seul dans un dossier ne fonctionne pas , alors il y a sûrement des dépendances entre Chrome et les fichiers autour ( je ne suis pas utilisateur de Chrome en tous cas mais de Mozilla ) .. enfin, il faudra peut être à réadapter ton besoin selon l'existant
    je sais que le fichier à des dépendances

    l'idee de mon programme est de compresser ,est crypter un executable (comme upx)

    lorsque on click sur l'exe il doit se decompresser , decrypter dans un fichier temp

    après il doit s'executer normalement meme si le fichier a des dépendances

  15. #15
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Points : 5 918
    Points
    5 918
    Par défaut
    Bonjour,
    Citation Envoyé par toti16 Voir le message
    l'idee de mon programme est de compresser ,est crypter un executable (comme upx)

    lorsque on click sur l'exe il doit se decompresser , decrypter dans un fichier temp

    après il doit s'executer normalement meme si le fichier a des dépendances
    Plutôt que d'utiliser Chrome en le décompressant et en l'utilisant de manière externe et dissocié, il serait plus judicieux d'utiliser Chromium Delphi Embedded :
    https://code.google.com/p/delphichromiumembedded/
    https://code.google.com/p/dcef3/

    Ce serait intégré de manière plus transparente à l'application, moins complexe à gérer et allégé des ajouts de Google propres à Chrome...

Discussions similaires

  1. Problème avec ShellExecute
    Par lou_delphdev dans le forum Web & réseau
    Réponses: 3
    Dernier message: 28/08/2007, 13h59
  2. Problème avec Shellexecute
    Par cincap dans le forum Composants VCL
    Réponses: 10
    Dernier message: 19/08/2007, 23h08
  3. [VBA]Problème avec ShellExecute()
    Par Sunchaser dans le forum SDK
    Réponses: 1
    Dernier message: 24/06/2007, 19h27
  4. Problème avec ShellExecute
    Par Xav++ dans le forum C++Builder
    Réponses: 5
    Dernier message: 29/05/2006, 13h58
  5. Problème avec ShellExecute
    Par SkYsO dans le forum Langage
    Réponses: 7
    Dernier message: 16/11/2005, 16h52

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