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++Builder Discussion :

Ouvrir un point EXE dans un composant Builder [Non suivi]


Sujet :

C++Builder

  1. #1
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Par défaut Ouvrir un point EXE dans un composant Builder
    Bonjour a tous

    j'aimerais ouvrir un executable et qu'il s'affiche, non pas dans une fenetre independante, mais dans un composant de ma TForm! Mais quel composant choisir? et comment faire?

    merci bcp

    jul

  2. #2
    Membre émérite
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Par défaut
    Salut !

    Je ne croi pas du tout que c'est faisable ça

    ++

  3. #3
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    de quelle manière veux tu afficher ton .exe
    (dump Binaire,format Texte)
    Cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Je pense qu'il veut que le composant s'affiche DANS un TPanel par exemple...c'est à dire par exemple avoir une petite fenêtre explorer dans un TPanel.

    Par contre comment le faire...ça :S

  5. #5
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Par défaut
    exactemet, dans un TPanel par exemple!

    merci pour votre aide

    ++

    jul

  6. #6
    Membre émérite
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Par défaut
    Salut !

    pour pour mettre l'économiseur de l'écran dans un TPanel :


    http://chgi.developpez.com/tips4/#tips59


    Peut être ça a une relation de ce que tu veux ?

    ++

  7. #7
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Par défaut
    ok, merci, je vais essayer de faire avec sa

    ++

  8. #8
    CGi
    CGi est actuellement connecté
    Expert confirmé
    Avatar de CGi
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 061
    Détails du profil
    Informations personnelles :
    Localisation : France, Allier (Auvergne)

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 061
    Par défaut
    Essais cela : Tu met un Bouton sur une Form et sur son événement
    OnClick le code suivant.
    Avant de clicker sur le bouton tu ouvre la calculatrice de Windows.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
       HWND Calc = FindWindow("SciCalc",NULL);
       ::SetParent(Calc, Handle);
    }
    Attention tout de même si tu ferme ton application il faudra fermer la calculatrice sinon elle reste en memoire.
    Site : http://chgi.developpez.com

    Pourquoi faire simple quand on peut faire compliqué ? (Jacques Rouxel)

  9. #9
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Par défaut
    CGI,

    merci, sa marche impec pour la calculatrice, mais g pas tout compris!

    "SciCalc", c bien le nom de la calculatrice?

    moi, g envi de mettre GoogleEarth, j'ai essayé avec GoogleEarth.EXE, et plein d'autre truc, sa ne marche pas

    donc je dois remplacer Sci par quoi STP?

    merci

    jul

    help me please, avant le week end

  10. #10
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    Essayes en mettant le chemin complet.

  11. #11
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Par défaut
    sa ne marche pas non plus!

  12. #12
    Membre chevronné Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Par défaut
    SciCalc c'est la classe qui contient la fenêtre de la calculatrice.
    Pour connaître la classe d'une fenêtre, il y'a un outil fournit avec Visual Studio : spy++

    Si tu n'as pas VS, y'a le même genre d'outil ici.

  13. #13
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Par défaut
    ok, g telecharger le truc

    sa marche impec, je resussi a avoir le nom de classe de la calculette, et de tous mes autres appli, c cool.

    de plus, j'arrive a les affichez, donc c excellent

    j'ai encore un petit probleme :

    avant, quand j'ouvrai manuellement mon GoogleEarth, je pouvais à l'aide de mon application ouvrir des fichier .klm (format de fichier pour googleEarth), cette ouverture permettait a googleEarth d'aller pointer sur la ville que j'indiquait dans mon fichier .klm : je faisait sa comme sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ShellExecute(NULL,"open","ini.klm","","",SW_SHOWDEFAULT);
    mais maitenant, j'ai insérer GoogleEarth dans un TScrollBox de la facon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    HWND insert[20]; // car plusieurs fenetre de classe "QWidget"
    for(i=0;i<20;i++){
     insert[i]= FindWindow("QWidget",NULL);
    ::SetParent(insert[i],ScrollBox4->Handle);
    }
    maintenant, quand je veux rouvrir des fichier .klm (qd googleearth est lancé et quand il est dans le ScrollBox4), GoogleEarth ne fait rien, comme si la commande ShellExecute allait dans le vide!

    je pense que c parce qu'il faut que shellExecute prenne l'argumet du handle de la bonne fenetre! Mais la quelle? et comment?

    comment puis-je m'en sortir SVP?

    merci

    jul

  14. #14
    Membre chevronné Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Par défaut
    Citation Envoyé par cquadjul
    je pense que c parce qu'il faut que shellExecute prenne l'argumet du handle de la bonne fenetre! Mais la quelle? et comment?
    jul
    Je ne pense pas que ce soit le problème, mais tu peux toujours esseyer de faire un ShellExecute sur chaque element de insert.

    Quand tu lances une nouvelle instance de GoogleEarth.exe, celle-çi doit sans doute vérifier si une précédente existe déjà, si c'est le cas et qu'un fichier doit être ouvert alors elle recherche sa fenêtre avec FindWindow, puis lui envoie le nom du fichier.

    FindWindow ne recherche que les fenêtres top-level, c'est à dire parent.

    Donc l'instance ne trouvera pas la fenêtre puisqu'elle n'est plus parent, ce qui explique pourquoi ton fichier n'est pas ouvert.

    Une solution serait de remettre la fenêtre parent avant de lancer ShellExecute, pour ça utilise SetParent avec un parent à NULL.

  15. #15
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Par défaut
    ouai, c ce que j'ai fait, mais c pas terrible niveau temps d'exécution, personne a une autre idée?

  16. #16
    Membre chevronné Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Par défaut
    J'ai vérifier, et il n'y a qu'une seule fenêtre avec le nom "Google Earth".

    Regardes le deuxième paramètre de FindWindow.

  17. #17
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Par défaut
    oui, mais GoogleEarth possède plusieurs fenetre de la classe QWidget

  18. #18
    Membre chevronné Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Par défaut
    Oui, et alors ?

    Tant qu'une seule fenêtre à "Google Earth" comme titre..

    Citation Envoyé par cquadjul
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    HWND insert[20]; // car plusieurs fenetre de classe "QWidget"
    for(i=0;i<20;i++){
     insert[i]= FindWindow("QWidget",NULL);
    ::SetParent(insert[i],ScrollBox4->Handle);
    }
    Tu peux mettre autre chose que ce NULL..

  19. #19
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Par défaut
    a ok, désolé, je voyait pas ce que tu voulais dire

    donc, oui, ce que j'arrive a faire, c'est ouvrir GE, le mettre dans un scrollbox et de le ressortir cde ce scroll box

    je suis obligé de ressortir GE pour lui lancer un autre fichier

    mon soucis est que sa prend pas mal de temps, et que sa fait pas trop classe. je voulais savoir si il y avait moyen de lancer un fichier a GE qd il est dans un ScrollBox? (a paramant non, car GE n'est plus dans une fenetre parent)

    mais je pense qu'il doit y avoir une solution en modifiant les param du ShellExecute, non?

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/06/2011, 10h49
  2. [VB6]Chemin d'acces differents dans le point exe et dans vb6
    Par cedre22 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 17/02/2006, 13h46
  3. Ecrire du texte en couleurs dans un composant
    Par wutang dans le forum Composants
    Réponses: 11
    Dernier message: 12/07/2004, 10h55
  4. lire le point-virgule dans un fichier .ini
    Par juflata dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 05/07/2004, 12h46
  5. Une image dans un composant ?
    Par bjl dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/03/2003, 11h28

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