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

Delphi Discussion :

[D7] Problème avec ShellExecute


Sujet :

Delphi

  1. #1
    Futur Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Août 2021
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : retraité
    Secteur : Finance

    Informations forums :
    Inscription : Août 2021
    Messages : 9
    Points : 6
    Points
    6
    Par défaut [D7] Problème avec ShellExecute
    Bonjour à toutes et à tous,
    Ci-après 2 courtes procédures pour ouvrir un jpg avec adobe photoshop éléments mais : la 1ere fonctionne mais pas la deuxième pourtant presque semblables. (pb de pointeur sans doute mais je suis bloqué). La 2ème procédures permet au travers de l'initialisation de mon appli de récupérer le chemin de photoshop et de la stocker dans une variable globale.

    Cette variable globale de type string contient la même valeur (même longueur et même contenu) ?????
    COMMENT FAIRE...MERCI DE VOTRE AIDE
    Cordialement
    Bernard

    PROCEDURE 1 FONCTIONNELLE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var
      fichier  : AnsiString;
      myCharPtr : PAnsiChar;
      CheminExe : String;
    begin
      CheminExe := 'C:\Program Files (x86)\Adobe\Photoshop Elements 4.0\Photoshop Elements 4.0.exe';  // affectation directe
      Fichier := RepInstallation + 'photos\' + StringgridOrdres.Cells[0,LigneSelectOrdre] + '\' + StringgridFamilles.Cells[0,LigneSelectFamille]
            + '\' + StringgridGenres.Cells[0,LigneSelectGenre] + ' ' + StringgridEspeces.Cells[0,LigneSelectEspece] + '.jpg';
      myCharPtr := Addr(fichier[1]);
      ShellExecute(Handle,'open',PChar(CheminExe),myCharPtr,nil,SW_SHOW);
      Reafficher.Enabled := True;
    end;
    PROCEDURE 2 NON FONCTIONNELLE ????
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var
      fichier  : AnsiString;
      myCharPtr : PAnsiChar;
      CheminExe : String;
    begin
      CheminExe := CheminAdobe;     // affectation par contenu d'une variable globale qui contient 'C:\Program Files (x86)\Adobe\Photoshop Elements 4.0\Photoshop Elements 4.0.exe'
      Fichier := RepInstallation + 'photos\' + StringgridOrdres.Cells[0,LigneSelectOrdre] + '\' + StringgridFamilles.Cells[0,LigneSelectFamille]
            + '\' + StringgridGenres.Cells[0,LigneSelectGenre] + ' ' + StringgridEspeces.Cells[0,LigneSelectEspece] + '.jpg';
      myCharPtr := Addr(fichier[1]);
      ShellExecute(Handle,'open',PChar(CheminExe),myCharPtr,nil,SW_SHOW);   // ca ne marche pas ???
      Reafficher.Enabled := True;
    end;

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour et bienvenue,

    on n'a pas indication de l'OS mais c'est certainement un Windows 64 bits.

    perso je mettrai le chemin entre " " avant tout car il y a des espaces dans le dit chemin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CheminExe:='"C:\Program Files (x86)\Adobe\Photoshop Elements 4.0\Photoshop Elements 4.0.exe"';
    ensuite pourquoi n'avoir pas fait pour les paramètres la même chose que pour le nom du programme ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellExecute(Handle,'open',PAnsiChar(CheminExe),PAnsiChar(Fichier),nil,SW_SHOW);
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Futur Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Août 2021
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : retraité
    Secteur : Finance

    Informations forums :
    Inscription : Août 2021
    Messages : 9
    Points : 6
    Points
    6
    Par défaut DELPHI 7 PB avec ShellExecute
    Bonsoir,
    Merci pour votre aimable réponse mais le problème ne semble pas résider dans les espaces car la procédure qui fonctionne est celle où cheminexe se voit affecté de la chaine avec les espaces.
    Dans la procédure qui ne fonctionne pas, cheminexe se voit affecté de la même chaîne mais au travers d'une variable globale contenant exactement la même chaîne avec ces espaces.
    Au sujet de l'OS il s'agit bien de windows 64 bits.
    Bien cordialement
    Bernard.

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 693
    Points : 13 128
    Points
    13 128
    Par défaut
    Tester le retour de ShellExecute te donnerait déjà quelques indices.

  5. #5
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    Bonjour,
    Les 2 chaînes ont-elles la même longueur ? Sont-elles identiques ? Le chemin obtenu en global est-il bien ANSI ? Le CodePage est-il le même ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    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 459
    Points : 24 873
    Points
    24 873
    Par défaut
    A quoi sert CheminExe si CheminAdobe est une String
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellExecute(Handle, 'open', PAnsiChar(CheminAdobe), PAnsiChar(Fichier), nil, SW_SHOW);   // ca ne marche pas ???
    un ShowMessage(CheminAdobe) pour débugguer aussi
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

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