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 :

[ShellExecute] Comment ça marche ?


Sujet :

Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 14
    Points : 4
    Points
    4
    Par défaut [ShellExecute] Comment ça marche ?
    Bonjour à tous!

    j'ai une petite question a vous poser sur le shellexecute.

    j'aimerais sacoir comment ça marche?

    car après divers recherche j'ai bien trouver dans la faq de delphi la fonction shellexecute pour ouvrir une application externe,mais la seule chose que je ne sais pas c'est comment déclarer la fonction et ou la déclarer,faut t'il faire un appel de la fonction via une procedure dans un bouton? existe t'il des tutoriaux complet pour débutant pour ce genre de fonction? je ne sais vraiment pas ou chercher bref j'aimerais votre aide si cela ne vous dérange pas trop.

    merci d'avance.

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 903
    Points : 6 027
    Points
    6 027
    Par défaut
    Oui, la FAQ est une bonne source : http://delphi.developpez.com/faq/?pa...terapplication

    Il te manque juste le déclenchement : (ex pour une option de menu)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TForm1.Evaluations1Click(Sender: TObject);
    var zFileName, zParams, zDir: array[0..79] of Char; result,k:integer;
    begin
         Result := ShellExecute(Application.MainForm.Handle, nil,
                                StrPCopy(zFileName, 'gesteval.exe'),     // ton pgm
                                StrPCopy(zParams, DirData),                // les paramètres (ici 1 path)
                                StrPCopy(zDir, ExtractFilePath(ParamStr(0))),   // le répertoire d'execution
                               SW_Show);
     end;
    Ca peut aussi figurer dans le Onclick d'un bouton.
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    je te remercie qi130 de m'avoir éclairer un peu.

    comme tu t'en doutes en voyant ta réponse je me suis précipité
    dans delphi pour essayer la ligne de commande,et j'ai du me tromper
    quelque peu, parceque quand je veux tester le prog la 1 ligne après begin et soulignée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TForm1.Reunion1Click(Sender: TObject);
     var zFileName, zParams, zDir: array[0..79]
      of Char;result,k:integer;
     
    begin
      // ici
     Result:= ShellExecute(Application.MainForm.Handle, nil,
      StrPCopy(zFileName, 'Réunion1.exe'),
      StrPCopy(zParams, DirData),
       StrPCopy(zDir, ExtractFilePath(ParamStr(0))),
        SW_Show);
     
    end;
    et l'explo de delphi me met:

    Undeclared identifier: dir data
    fatal error...
    bref comme c'est relativement nouveau pour moi, suis perdu.

    [Modération]
    Balises code ajoutées par Laurent Dardenne
    Merci de lire les régles du forum.
    Laurent Dardenne
    [/Modération]

  4. #4
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 903
    Points : 6 027
    Points
    6 027
    Par défaut
    Undeclared identifier: dirdata
    fatal error...
    Il s'agit d'une variable présente dans mon code et que je passe en paramètres.

    Naturellement, si tu n'as pas de paramètre à passer à ton prog, il faut mettre Nil à la place.
    Si tu as besoin de transmettre un paramètre, il faut adapter ce code à ton contexte (=mettre une variable à toi, déclarée où il faut et alimentée par ce qui convient)

    Bon courage et n'oublie pas le bouton résolu (en bas à gauche)
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    évidement si je reprend les variable de ton code sa peut pas marcher.

    Donc j'ai essayer avec un code simple.

    l'application est appeler par le clique du bouton.

    plus d'erreur,c'est déjà ça.

    la fenetre principale se lance et quand je clique sur le bouton rien ne se passe,voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellExecute(0,'OPEN','Réunion1.exe', Nil, 'D:\dévelopement\course', SW_SHOW);
    je me suis surement tromper quelque par!

    est'ce que j'ai mal spécifier le répertoire ou est'ce il faut mettre un paramétre et si oui quel genre de param.

    bref suis encore un peut dans le noir,même si je vois un peut plus clair.

    Balises code ajoutées par Laurent Dardenne

  6. #6
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 903
    Points : 6 027
    Points
    6 027
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellExecute(0,'OPEN','Réunion1.exe', Nil, 'D:\dévelopement\course', SW_SHOW);
    On est très très loin du code de la FAQ là......StrPCpy, apllication.Handle qu'êtes vous devenus ?


    Pourquoi ne codes-tu pas à l'identique des exemples fournis, juste en les adaptant à ton prog ?
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  7. #7
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par qi130
    Pourquoi ne codes-tu pas à l'identique des exemples fournis, juste en les adaptant à ton prog ?
    Oui je confirme avec un minimum de méthode on gagne du temps.


    [EDIT]
    Voir ce post sur le sujet
    [EDIT]

  8. #8
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Si tu veux lancer une application facilement et sans te prendre la tête, utilise RunURL de l'unité SjrdUsual (infos ici).
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  9. #9
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par qi130
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TForm1.Evaluations1Click(Sender: TObject);
    var zFileName, zParams, zDir: array[0..79] of Char; result,k:integer;
    begin
         Result := ShellExecute(Application.MainForm.Handle, nil,
                                StrPCopy(zFileName, 'gesteval.exe'),     // ton pgm
                                StrPCopy(zParams, DirData),                // les paramètres (ici 1 path)
                                StrPCopy(zDir, ExtractFilePath(ParamStr(0))),   // le répertoire d'execution
                               SW_Show);
     end;
    Désolé, j'arrive à la bourre... Ton appel à ShellExecute me paraît monstrueusement (et inutilement) complexe, sauf s'il y a un élément inconnu qui dicte ce choix... Plus simple serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    procedure TForm1.Evaluations1Click(Sender: TObject);
    begin
         Result := ShellExecute(Application.MainForm.Handle, nil,
                                'gesteval.exe',     // ton pgm
                                PChar(DirData),                // les paramètres (ici 1 path)
                                PChar(ExtractFilePath(ParamStr(0))),   // le répertoire d'execution
                               SW_SHOW);
    end;
    DarkSquall La valeur de retour de ShellExecute n'est pas là pour juste faire joli : il te faut la vérifier, si elle est inférieure ou égale à 32, une erreur s'est produite, la valeur du code d'erreur permet alors de savoir ce qu'il s'est passé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Var
       Code : Cardinal ;
    Begin
         Code := ShellExecute (.....) ;
         If (Code<=32) Then
            // Affichage du message d'erreur "propre".
            // On peut remplacer la ligne par RaiseLastOSError (ou RaiseLastWin32Error sur les anciens Delphi).
            ShowMessage(SysErrorMessage(Code));
    End;
    De plus, les commandes (le 2nd paramètre) sont normalement à donner en minuscules : donc, écrire 'open' plutôt.
    A vue de nez, je dirais que c'est ton chemin d'accès à "Réunion1.exe" qui est mauvais (code d'erreur 2), tel que tu as écrit ton appel à ShellExecute, ça ne marchera pas s'il n'est pas dans le répertoire courant, le path ou le répertoire "D:\développement\course". En général, on met le chemin d'accès complet de l'exécutable, c'est mieux.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    merci beaucoup de ton aide Mac Lak.


    mais je ne comprend toujours ,en fait je manque d'information,il me faudrait plus de détail.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    procedure TForm1.Evaluations1Click(Sender: TObject); 
    begin 
         Result := ShellExecute(Application.MainForm.Handle, nil, 
                                'gesteval.exe',     // ton pgm 
                                PChar(DirData),                // les paramètres (ici 1 path) 
                                PChar(ExtractFilePath(ParamStr(0))),   // le répertoire d'execution 
                               SW_SHOW); 
    end;
    donc j'ai plusieur question présice de débutant

    ShellExexcute(0,'open','application.exe',

    voila jusqua la tout vas bien mais sa se complique après

    PChar(DirData), // les paramètres (ici 1 path)

    qu'est-ce que je doit mettre ici sachant que je veut lancer une autre application créer par delphi et rendu indépendante.

    PChar(ExtractFilePath(ParamStr(0))), // le répertoire d'execution

    pour le répertoire c'est pareil comment je doit l'écrire.

    voila je pense avoir été plus précis,j'espère qu'on pourra m'aider.

    merci d'avance.

    [edit]

    ajoutées par Pascal Jankowski
    [/edit]

  11. #11
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par DarkSquall
    merci beaucoup de ton aide Mac Lak.
    You're welcome.

    Citation Envoyé par DarkSquall
    mais je ne comprend toujours ,en fait je manque d'information,il me faudrait plus de détail.
    Voilà un extrait de la prochaine QR sur le sujet :
    Citation Envoyé par Prochaine QR
    Conversion d'un raccourci Windows :
    - Clic droit sur le raccourci, puis "Propriétés".
    - Pour la commande ShellExecute, les paramètres seront :
    hwnd : Application.Handle
    lpOperation : 'open'
    lpFile : Le contenu de la ligne "Cible".
    lpParameters : S'il y a des paramètres après l'exécutable dans "Cible", mettez-les ici et pas dans lpFile.
    lpDirectory : Le contenu de la ligne "Démarrer dans".
    nShowCmd : Suivant la liste "Exécuter" :
    • Fenêtre normale : mettre SW_SHOW.
      Réduite : mettre SW_SHOWMINIMIZED.
      Agrandie : mettre SW_SHOWMAXIMIZED.
    Exemple de raccourci :
    • Cible = "C:\Program Files\Microsoft IntelliPoint\dplaunch.exe" Mouse CPL
      Démarrer dans = "C:\Program Files\Microsoft IntelliPoint"
      Exécuter : Fenêtre normale
    L'appel sera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ShellExecute(
           Application.Handle,
           'open',
           'C:\Program Files\Microsoft IntelliPoint\dplaunch.exe',
           'Mouse CPL',
           'C:\Program Files\Microsoft IntelliPoint\',
           SW_SHOW);
    A partir de là, tu peux faire un raccourci vers ton programme (et donc "tester" l'exécution), puis le convertir en appel à ShellExecute facilement.

    Dans ton cas précis :
    Citation Envoyé par DarkSquall
    ShellExexcute(0,'open','application.exe',
    voila jusqua la tout vas bien mais sa se complique après
    OK. Cependant, je te fais remarquer qu'il est souhaitable de mettre le chemin complet, c'est à dire (par exemple) 'C:\Program Files\MonAppli\Application.exe' au lieu de juste 'application.exe'...

    Citation Envoyé par DarkSquall
    PChar(DirData), // les paramètres (ici 1 path)
    Ce sont les paramètres de ton programme.
    Si ton programme se lance ainsi :
    "C:\Program Files\MonAppli\Application.exe" /I /K MonFichier.ext
    alors tu devras mettre '/I /K MonFichier.ext' comme paramètre. Bref, tout ce qui suit le nom de l'exécutable, sans exception.

    Citation Envoyé par DarkSquall
    qu'est-ce que je doit mettre ici sachant que je veut lancer une autre application créer par delphi et rendu indépendante.
    Que ton application soit commerciale ou freeware, créée par Delphi ou Visual Basic, ça n'a AUCUNE importance du moment que c'est un exécutable valide.

    Citation Envoyé par DarkSquall
    PChar(ExtractFilePath(ParamStr(0))), // le répertoire d'execution
    pour le répertoire c'est pareil comment je doit l'écrire.
    Si tu ne sais pas, en admettant que le nom de ton programme soit dans une variable NomExecutable, alors mets ExtractFilePath(NomExecutable).

    Donc, ça devient :
    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
    Var
       NomExecutable : String ;
       Parametres : String ;
    Begin
         NomExecutable:='C:\Program Files\MonAppli\Application.exe' ;
         Parametres:='/I /K MonFichier.ext' ;
         If (ShellExecute (
              Application.MainForm.Handle, 
              'open', 
              PChar(NomExecutable),
              PChar(Parametres),
              PChar(ExtractFilePath(NomExecutable)),
              SW_SHOW))<=32 Then
            ShowMessage(SysErrorMessage(GetLastError)); 
    End;
    Tout est clair ?
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    oui tout est clair, ca le fait là j'ai tout compris!

    je te remercie beaucoup pour ton aide Mac Lak.

    alors j'ai créer un application pour ouvrir une autre application je l'ai rendu indepandante.

    après je me suis dit si elle est indépandante je devrtais pouvoir lancer l'autre application en cliquanr sur le bouton sans avoir besoin du répertoire d'origine,donc je les suprimer et j'ai rééssayer,belle boulette
    ca marche pas.

    donc je me suis dit qu'il fallait peut'ête faire une copy de l'application dans le programme et j'ai donc fait se code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TForm1.Button1Click(Sender: TObject);
    var zFileName, zParams, zDir: array[0..79] of Char; result,k:integer;
    begin
    Result := ShellExecute(Application.MainForm.Handle, nil,
    StrPCopy(zFileName,'D:\dévelopement\course\Réunion 1.exe'),// ton pgm
    StrPCopy(zParams,'D:\dévelopement\course\' ), // les paramètres
    StrPCopy(zDir, ExtractFilePath(ParamStr(0))), // le répertoire d'execution
    SW_Show);
     
    end;
    j'ai tester sans le repertoire d'origine,ca marche pas.

    comment faut il faire?

    en fait voila se que je voudrais faire:

    une interface principale (via une from)

    pouvant ouvrir d'autre application par le clique d'un bouton.

    et tou ca biensur en ayant toute les autre application dans le programme
    sans avoir besoin du repertoire d'origine.

    j'espère que je me suis bien expliquer.

    j'attend ton aide si cela ne te dérange pas trop.

    merci d'avance.

    ______________________________
    [Balises code rajoutées par Lil_jam63]

  13. #13
    Membre confirmé
    Avatar de lil_jam63
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 447
    Points : 600
    Points
    600
    Par défaut
    Je crois comprendre ce que tu cherches à faire, tu veux pouvoir lancer notepad (par exemple) même si notepad.exe n'est pas présent sur ton disque?
    ----------------------------------------------------
    Avant de poster, pensez à utiliser les différents outils à votre disposition:
    Google, la FAQ et le moteur de recherche.

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    oui lil_jam63 c'est exactement se que je voudrais faire.

    est'ce que c'est possible et si oui comment le faire?

    merci d'avance pour ta reponse.

  15. #15
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    DarkSquall : Comment veux-tu exécuter un programme si tu ne sais pas où il est situé sur le disque dur ? Ou s'il n'existe pas ?

    En plus, je ne vois pas ce que vient faire le "StrPCopy(zParams,'D:\dévelopement\course\' ), // les paramètres" dans ton code... L'exemple de qi130 est très mauvais sur ce point, car confusant avec le paramètre suivant. Quant à toi, j'ai l'impression que tu n'as pas lu ce que je t'ai écrit sur la conversion de raccourcis, au vu du code que tu as donné...

    Tu n'as que deux solutions "viables" :
    - Le répertoire du programme est dans le PATH (comme "notepad.exe" par exemple). Dans ce cas, pas besoin de spécifier le répertoire d'accès.
    - Le programme n'est pas accessible via le PATH :
    • - Soit le chemin est "en dur" (ressource réseau par exemple), tu dois spécifier l'accès.
      - Soit le chemin est modifiable, en général on récupère le répertoire d'installation via la base de registre.
    Mais quel que soit le cas, il n'y a pas de chamanisme : si même toi tu ne sais pas où est ton exécutable, comment veux-tu que le système le trouve ??

    Vu ce que tu as mis, ceci devrait suffire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Procedure SimpleExecute ( Const ProgramFullPath : String ) ;
    Begin
         If (ShellExecute( Application.Handle,
                           'open',
                           PChar(ProgramFullPath),
                           '',
                           PChar(ExtractFilePath(ProgramFullPath)),
                           SW_SHOW
                          ) <= 32 ) Then
            ShowMessage( Format ( 'Erreur dans SimpleExecute(%s) :'+#13#10+#13#10+'%s',
                                  [ProgramFullPath,SysErrorMessage(GetLastError)] )
                       ) ;
    End;
    Tu recopies cette fonction, et tu l'essaie avec ton programme.
    Par exemple, tu écris ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SimpleExecute('D:\dévelopement\course\Réunion 1.exe');
    Et tu poste le résultat affiché par SimpleExecute si ça ne marche pas.

    OK ?

    Pour le reste, si l'application n'existe pas sur la machine cible, à toi de te débrouiller pour qu'elle y soit. Par exemple via un setup, ou en l'incluant comme ressource binaire. Je te déconseille de jouer à ça cependant, car tu n'as pas forcément les droits pour redistribuer une application tierce, y compris parfois des runtimes.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  16. #16
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    si,si mac_lak j'ai bien lu se que tu me écrit.

    en fait ce que je cherche a faire c'est un logiciel avec plusieur fenêtre
    donc:
    une interface principale avec des bouton perméttant d'acceder au autre fenêtre voila en fait .
    et tout en etant indépandant biensur(pour que sa ppuisse fonctionner sur d'autre pc sans manquer de d'élément).

    donc je suis entrain de me demander si je fait les bonne chose qu'il faut faire ou si je suis complètement a coter.

  17. #17
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par DarkSquall
    en fait ce que je cherche a faire c'est un logiciel avec plusieur fenêtre
    Pour rappel :
    Si toutefois tu as d'autres questions sur des sujets autre que Shellexecute merci d'ouvrir un nouveau post.

  18. #18
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Pour que l'on puisse t'aider de notre mieux, il faut détailler un maximum ton projet. D'après ce que j'ai compris, tu développes plusieurs programmes et tu les éxécutes à partir d'un autre (fenêtre d'éxécution principale). Cette solution est lourde, mais n'est pas inintérressante. J'ai procédé de cette manière pour ce jeu d'Echecs. L'IA est un programme externe lancé avec ShellExecute. La communication entre les deux programmes se fait via les messages Windows. Malgré tout, c'est lourd et lent, sans parler des difficultés à gérer les éventuelles erreurs... De plus, cela oblige d'intégrer le programme dans le 1er pour distribuer le projet complet dans un seul exe... Bref, ce n'est pas une solution propre. J'ai donc décidé de fusionner les 2 programmes dans un seul projet. La rapidité d'éxécution est incomparable!

    Dans ton cas, pourquoi tiens-tu à utiliser cette méthode de programmes externes?
    Pourquoi ne pas développer une seule application?

    :
    De retour parmis vous après 10 ans!!

  19. #19
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    je vais essayer de détailer mon projet le plus clairement possible.

    un splash screan une clée d'activation.

    alors j'ai déjà une fenêtre principale avec plusieur bouton dessus

    dont deux qui servent a ouvrir deux application mathématique(c'est a dire une application de calcul: l'utilisateur entre des donner dans des edit(entier seulement) puis clique sur le bouton ,le résulta apparer en bas de la fenêtre dans des labels.

    un bouton ouvrant une petite fenêtre d'information sur le logiciel (about)

    un bouton contenant un mail et ayant un lien avec outlook express.

    un bouton contanent une aide.

    voila sa c'est pour l'interface principale.

    j'espère que je me suis bien expliquer.

    merci pour ton aide

  20. #20
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    je tien a préciser

    'alors j'ai déjà une fenêtre principale avec plusieur bouton dessus '

    en fait je n'ai rien fait encore,mais c'est ce que j'aimerais avoir dans mon projet.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. ToAsciiEx, comment cela marche ?
    Par mikyfpc dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/02/2004, 21h39
  2. [MFC] list box : comment ça marche
    Par runn2 dans le forum MFC
    Réponses: 4
    Dernier message: 28/01/2004, 12h36
  3. [SYNEDIT] -> Comment ça marche ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/01/2004, 19h11
  4. [TP][Turbo Vision] comment ça marche ??
    Par Costello dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 05/08/2003, 00h24
  5. [update][req. imbriquee] Comment ca marche ??
    Par terziann dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/07/2003, 12h51

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