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
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
Salut !
Je ne croi pas du tout que c'est faisable ça![]()
++
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
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
exactemet, dans un TPanel par exemple!
merci pour votre aide
++
jul
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 ?![]()
++
ok, merci, je vais essayer de faire avec sa
++
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.
Attention tout de même si tu ferme ton application il faudra fermer la calculatrice sinon elle reste en memoire.
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); }
Site : http://chgi.developpez.com
Pourquoi faire simple quand on peut faire compliqué ? (Jacques Rouxel)
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![]()
sa ne marche pas non plus!
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.
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 :
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 ShellExecute(NULL,"open","ini.klm","","",SW_SHOWDEFAULT);
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!
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); }
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
Je ne pense pas que ce soit le problème, mais tu peux toujours esseyer de faire un ShellExecute sur chaque element de insert.Envoyé par cquadjul
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.
ouai, c ce que j'ai fait, mais c pas terrible niveau temps d'exécution, personne a une autre idée?
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.
oui, mais GoogleEarth possède plusieurs fenetre de la classe QWidget
Oui, et alors ?
Tant qu'une seule fenêtre à "Google Earth" comme titre..
Tu peux mettre autre chose que ce NULL..Envoyé par cquadjul
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?
Partager