Lancer un programme externe

Utilisateur anonyme - 19 août 2005 à 11:55
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 - 20 août 2005 à 11:56
Salut à tous

Imaginez que vous avez une FORM et deux boutons OUVRIR FERMER. Ma question est quelle est la source pour que :

*Quand on clique sur OUVRIR un programme, comme machin.exe, s'ouvre (si possible avec une taille bien définit de la fenêtre).

*Quand on clique sur FERMER le programme (et donc sa fenêtre) se ferme.

Merci à tous

3 réponses

cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
19 août 2005 à 12:26
L'application ne le fera pas ça toute seule si elle n'est pas prédisposée.

Tu lances l'appli avec ShellExecute(0,'open','fichier.exe','','',,0);

Tu recherches le handle de la fenêtre avec FindWindow. Cela nécessite de connaître titre de la fenêtre ainsi que sa classe. Pour le savoir, utilise Spy++ :
Utiliser Spy++

Tu exécutes SetWindowPos sur le handle donné par FindWindow. Aide-toi de l'aide pour bien paramétrer SetWindowPos.

Pour fermer la fenêtre, tu envoies le message WM_SYSCOMMAND avec le paramètre SC_CLOSE sur le même Handle :
SendMessage(Handle, WM_SysCommand, SC_Close, 0);

===========
Validez les réponses si ok...

ViewVite XP : HTML
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
19 août 2005 à 14:07
Petit rappel à propos de ShellExecute : "If the function succeeds, the return value is the instance handle of the application that was run, or the handle of a dynamic data exchange (DDE) server application.
If the function fails, the return value is an error value that is less than or equal to 32. " (Extrait de l'aide en ligne de "Microsoft Win32 programmer's reference")

Alors, pourquoi rechercher le handle de la fenêtre avec FindWindow ?

<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
20 août 2005 à 11:56
C'est vrai... mais j'ai toujours un doute sur la fiabilité du résultat renvoyé. En schématisant, je veux être sûr d'avoir le handle de la fenêtre principale de travail et non un numéro d'instance ou le handle de TApplication.

Je n'ai jamais eu affaire à de tels codes. Donc, je ne peux pas affirmer que l'utilisation de FindWindow est indispensable. Je dis simplement qu'on peut l'utiliser pour de telles recherches.

===========
ViewVite XP : HTML
0
Rejoignez-nous