OUVRIR UN PROGRAMME EXTERNE ET LE FERMER

Jean-Luc - 11 oct. 2000 à 11:48
cs_LogOff Messages postés 69 Date d'inscription dimanche 6 octobre 2002 Statut Membre Dernière intervention 14 juillet 2009 - 14 juil. 2009 à 18:17
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/65-ouvrir-un-programme-externe-et-le-fermer

cs_LogOff Messages postés 69 Date d'inscription dimanche 6 octobre 2002 Statut Membre Dernière intervention 14 juillet 2009
14 juil. 2009 à 18:17
Yabpat, ta question n'a rien voir avec le sujet de ce post ; en plus, tu déterres un topic vieux de presque trois ans !

Utilise l'API ShellExecuteA :

Déclaration :
Public Declare Function ShellExecuteA Lib "shell32" (ByVal hWnd As Long, ByVal LPFile As String, ByVal PathFile As String, ByVal Other As String, ByVal Other2 As String, ByVal Param As Long) As Long

Utilisation :
ShellExecuteA 0, "Open", chemin_dossier, "", , 1

Une recherche sur Google ou PSC t'aurait donné la même réponse en deux minutes.

Bonne prog,
cs_yabpat Messages postés 8 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 13 juillet 2009
13 juil. 2009 à 19:58
j'ai vraiment un problème
j'aimerai ouvrir un repertoire directement a partir ce son chemin d'accès
cs_LogOff Messages postés 69 Date d'inscription dimanche 6 octobre 2002 Statut Membre Dernière intervention 14 juillet 2009
15 nov. 2005 à 04:58
Merci MTI pour tes précieux conseils : j'ai acheté 'La recherche sur Internet pour les nuls' et j'ai vachement progressé: je parviens maintenant à faire des recherches sur vbfrance, vbip, psc et freevbcode! Sérieux progrès, non? En plus, ça marche aussi avec Google! Formidable!
En ce qui concerne le gestionnaire des tâches, je sais m'en servir (je suis...ingénieeeuu.....informaticien, mais j'ai winXP), mais merci tout de même d'avoir obligeamment répondu à mon post.

Deux petites piques pour rester dans le ton fraternel caractéristique de la solidarité entre programmeurs sur vbFrance:
Note que le 'e' n'est jamais accentué quand il est placé devant un 'x'.
Note également que sur le web un clic suffit pour valider un formulaire, et que le temps de chargement des pages dépend du débit de ta connexion internet, donc même si les pages mettent du temps à charger, évite de cliquer 2 fois sur le bouton 'Ajouter votre commentaire' : ça fait un peu balourd, un peu comme quelqu'un qui a du mal à faire une recherche sur internet ;)

Si jamais tu as du temps à perdre et que l'envie te prend de me répondre sur un ton aussi constructif que mon post, fais-le via la messagerie interne de vbFrance, histoire de ne pas polluer la page de commentaires (mon message suffit bien, je pense), c'est pas très sympa pour les autres.

Sinon après t'avoir engeulé :) je vais t'expliquer:
je n'arrivais pas à utiliser l'API TerminateProcess(), maintenant le pb est réglé. Merci à Nix au passage pour cette source.
cs_mti Messages postés 51 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 29 mars 2008
14 nov. 2005 à 19:35
slayer: (commence à m'énerver) recherche==>execution==>ouvrir prog externe
ou même MSDN==> shell, fonction
vous êtes forts pour les recherches (je m'énerve comme un modo :))
cs_mti Messages postés 51 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 29 mars 2008
14 nov. 2005 à 19:21
logoff: la fonction recherche ca éxiste!!! Si t'en fais une sur processus tu tombes sur ce que tu veux!!!
sinon après t'avoir engeulé :) je vais t'expliquer:
dans le gestionnaire des tâches, tu fais clic droit sur ton prog et aller dans le processus et voilà (à condition d'avoir XP biensur)
cs_mti Messages postés 51 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 29 mars 2008
14 nov. 2005 à 19:21
logoff: la fonction recherche ca éxiste!!! Si t'en fais une sur processus tu tombes sur ce que tu veux!!!
sinon après t'avoir engeulé :) je vais t'expliquer:
dans le gestionnaire des tâches, tu fais clic droit sur ton prog et aller dans le processus et voilà (à condition d'avoir XP biensur)
cs_mti Messages postés 51 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 29 mars 2008
14 nov. 2005 à 19:16
Bruno:
tu peux lancer que des progs avec shell() donc tu lance IE:
shell("c:\...........\iexplore.exe [lettre de ton lecteur]:\tonrepertoire\tapage.htm",1)
Por vérifier que ca marche tu tape dans démarrer ==> éxecuter ==>
"iexplore.exe http://www.vbfrance.fr"
et tu vas voir ca vas bien t'ouvrir la page d'accueil de VBFrance,
sauf que dans ton cas c'est pas
http://www.vbfrance.fr
mais
D:\repertoire\page.htm
Merci qui??? :)
cs_mti Messages postés 51 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 29 mars 2008
14 nov. 2005 à 19:15
Bruno:
tu peux lancer que des progs avec shell() donc tu lance IE:
shell("c:\...........\iexplore.exe [lettre de ton lecteur]:\tonrepertoire\tapage.htm",1)
Por vérifier que ca marche tu tape dans démarrer ==> éxecuter ==>
"iexplore.exe http://www.vbfrance.fr"
et tu vas voir ca vas bien t'ouvrir la page d'accueil de VBFrance,
sauf que dans ton cas c'est pas
http://www.vbfrance.fr
mais
D:\repertoire\page.htm
Merci qui??? :)
zokar Messages postés 4 Date d'inscription jeudi 6 novembre 2003 Statut Membre Dernière intervention 8 mars 2006
2 juil. 2004 à 23:38
Pour ma part j'ai un petit soucis...
même apres les corrections apportées par les commentaires, mes programmes s'ouvrent... mais ne se ferment jamais...

un peut gênant quand meme :o)

En fait, c'est au moment de l'ouverture du process qu'il me renvoie toujours 0.

si qu'elqu'un a une idée...
Morricon Messages postés 41 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 1 mars 2007
6 nov. 2003 à 16:55
Pas mal du tout je dirai. Si Si ! J'en ait d'ailleurs réecrite une en tenant compte des commentaires.. Et cela fonctionne très bien sous tous les OS (98, ME, NT4, 2000 et XP) Vraiment bien ce petit bout de code.

Merci à Nix pour cette sources, et bonne prog à tous.
cs_LogOff Messages postés 69 Date d'inscription dimanche 6 octobre 2002 Statut Membre Dernière intervention 14 juillet 2009
3 oct. 2003 à 21:07
Je voudrais simplement savoir comment on trouve le processus du programme que l'on veut fermer...

merci d'avance
cs_slayer Messages postés 202 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 18 mars 2008
20 janv. 2003 à 10:25
si qu'elqu'un aurai cette source complete qui toute sous xp sa serai la bien venu !
cs_Womby Messages postés 69 Date d'inscription jeudi 29 août 2002 Statut Membre Dernière intervention 27 avril 2007
25 déc. 2002 à 18:06
lau personnelement je fait ca avec une variable boolean :) si la variable est a false alors il ouvre le prog et met la variable a true et donc si la variable est a true il ferme le programme et met la variable a false :) vala :)

c'est bien comme source ca me servira pas mal merci :))
cs_Lau Messages postés 26 Date d'inscription jeudi 17 janvier 2002 Statut Membre Dernière intervention 25 octobre 2002
11 mai 2002 à 16:15
Comment tu fais pour qu'un même bouton puisse servir au premier clic à ouvrir un programme et au deuxième à le fermer ?
Katalepsy Messages postés 8 Date d'inscription vendredi 22 février 2002 Statut Membre Dernière intervention 12 avril 2003
22 févr. 2002 à 11:04
corrections pour win2k (fonctionne aussi pour NT) :

---dans les declarations, il faut ajouter les lignes---
Public Const PROCESS_TERMINATE = &H1
Public Const STILL_ACTIVE = &H103

---valeur de fdwAccess---
fdwAccess = PROCESS_TERMINATE + PROCESS_QUERY_INFORMATION

et le stricte minimum serais de rajouter :
"If Retour 0 Then exit sub" apres la ligne "Retour shell("LeProg.exe",1)"
"If hProcess 0 Then Exit Sub" apres la ligne "hProcess OpenProcess(fdwAccess, False, Retour)"
"If Not nRet = STILL_ACTIVE Then Exit Sub" apres la ligne "GetExitCodeProcess hProcess, nRet"
Je voudrai savoir coment interdire l'ouverture d'un programme externe!!
(Car j'ai mis un Mot de passe et si le gars choisit annuler, ca ouvre le boitier cd!!)
Plus simple pour lancer une appli :
Option Explicit
dim fso, wsh, f
set fso = CreateObject("Scripting.FileSystemObject")
Set wsh = CreateObject("WScript.Shell")
set f = fso.GetFile("c:program ilesmachin ruc.ext")
wsh.Run f.ShortPath

Et voila, mais il faut tout de même avoir installé WSH sur votre ordi.
http://www.microsoft.com/devonly/prodinfo/scripting/downloads/v55/other/scr55fr.exe <== pour Win98
et http://www.microsoft.com/devonly/prodinfo/scripting/downloads/v55/windows2000/scriptfr.exe <== Pour win2000
pour atila fo metre:
shell "le_chemin_du_prog" , vbMaximizedFocus
et pis voila !!
pas mal !
jm'et 10 !!
Tout simplement excellent comme code. Contrairement à ce que prétendent certains, je n'ai rencontré aucun problème sur NT4. J'ai juste eu à remplacer "fdwAcess" par "1" pour le prog. tourne.
Faut ajouter fdwAccess dans la declaration des variables, bien entendu :)
Ce bout de code marche très bien sous Windows Me et 98.Cependant cela ne marche pas sous NT. J'aimerais savoir quelles fonctions il faut remplacer.
C'est cool, j'arrive à lancer des progs ds des fenêtres MsDos. Comment je fais pour que ces fenêtres soient automatiquement réduites (ds la barre des taches) ? Merci ...
atilla:
il faut metre vbnormalfocus

Retour = shell("LeProg.exe",1),VBNORMALFOCUS
Je ne peux pas fermer les programme ouvert sous nt4.
Est ce normal ?
Le programme externe se lance bien, mais est en fenetre reduite; pourriez vous m'indiquer comment l'agrandir
Merci.
qu'entendez-vous par programme externe?
peut-on commander l'ouverture d'une application sur un ordi distant à l'aide de ce code??
ce code ne fonctionne pas sous windows 2000 , que faut il modifier pour le voir fonctionner ???merci
J'aimerais ouvrir une page web (index.html ou page1 .html),placer dans un réperoire sur un CD Rom, et le lancer a partir d'un Prg VB6.Merci d'anvance Bruno
je n'arrive pas à faire fonctionner ce bout de programme, en plus que doit contenir "fdwAccess"