begin process at 2012 02 11 22:39:10
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Exécution

 > OUVRIR UN PROGRAMME EXTERNE ET LE FERMER

OUVRIR UN PROGRAMME EXTERNE ET LE FERMER


 Information sur la source

Note :
7,95 / 10 - par 39 personnes
7,95 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Exécution Classé sous :lancer, programme, externe, processus, openprocess Niveau :Initié Date de création :15/05/1999 Vu :49 967

Auteur : Nix

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (15)
Ajouter un commentaire et/ou une note


 Description

Comment puis-je ouvrir un programme externe puis le fermer ?

Mettez ce code dans un Module :

Source

  • Public hProcess, nRet, Retour as Long
  • Const PROCESS_QUERY_INFORMATION = &H400
  • Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
  • Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
  • Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
  • Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
  • ' Pour lancer le programme :
  • Retour = shell("LeProg.exe",1)
  • ' Pour Fermer le programme :
  • hProcess = OpenProcess(fdwAccess, False, Retour)
  • GetExitCodeProcess hProcess, nRet
  • Call TerminateProcess(hProcess, nRet)
  • Call CloseHandle(hProcess)
Public hProcess, nRet, Retour as Long
Const PROCESS_QUERY_INFORMATION = &H400

Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long

' Pour lancer le programme :

Retour = shell("LeProg.exe",1)

' Pour Fermer le programme :

hProcess = OpenProcess(fdwAccess, False, Retour)
GetExitCodeProcess hProcess, nRet
Call TerminateProcess(hProcess, nRet)
Call CloseHandle(hProcess)



 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) FAIRE UN PING (ICMP) EN VB 2005 (LE PLUS SIMPLEMENT DU MONDE...
IMPRIMER LE CONTENU D'UN RICHTEXTBOX
Source avec Zip Source avec une capture TESTEUR DE REGEX (REGULAR EXPRESSIONS)
Source avec Zip Source avec une capture FORCER LE REBOOT SOUS WINDOWS NT OU WINDOWS 2000 (REDÉMARRAG...
COMPTER LES MOTS DANS UNE CHAINE DE CARACTÈRE

 Sources de la même categorie

Source avec Zip CALCULATRICE par TPB
Source avec Zip Source .NET (Dotnet) PIERRE PAPIER CISEAUX par Ultrabytes
Source avec Zip Source avec une capture UN PATCH EN VB (V3) par PhoenixBytes
Source avec Zip Source .NET (Dotnet) [VB.NET 2008] EXECUTION MULTITHREAD DE PLUSIEURS FONCTION À ... par ShadowTzu
Source avec Zip Source avec une capture MULTITHREADING ACTIVEX par Philippe734

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) LANCER AUTOMATIQUEMENT UN PROGRAMME À LA CONNECTION D'UN LEC... par liponin
DA ENUMPROCESSES CODE par zavier666
Source avec Zip EXÉCUTER UN PROGRAMME (OU UN FICHIER VIA SON PROGRAMME ASSOC... par PaTaTe
Source .NET (Dotnet) FERMETURE D'UN PROCESSUS PRÉCIS (KILL PROCESS) par capuccino_fr
DEMARRER UN PROGRAMME AU DEMARRAGE DE WINDOWS par Nix

Commentaires et avis

Commentaire de Katalepsy le 22/02/2002 11:04:00

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"

Commentaire de Lau le 11/05/2002 16:15:33

Comment tu fais pour qu'un même bouton puisse servir au premier clic à ouvrir un programme et au deuxième à le fermer ?

Commentaire de Womby le 25/12/2002 18:06:58

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 :))

Commentaire de slayer le 20/01/2003 10:25:21

si qu'elqu'un aurai cette source complete qui toute sous xp sa serai la bien venu !

Commentaire de LogOff le 03/10/2003 21:07:44

Je voudrais simplement savoir comment on trouve le processus du programme que l'on veut fermer...

merci d'avance

Commentaire de Morricon le 06/11/2003 16:55:54

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.

Commentaire de zokar le 02/07/2004 23:38:08

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...

Commentaire de mti le 14/11/2005 19:15:39

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??? :)

Commentaire de mti le 14/11/2005 19:16:24

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??? :)

Commentaire de mti le 14/11/2005 19:21:09

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)

Commentaire de mti le 14/11/2005 19:21:23

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)

Commentaire de mti le 14/11/2005 19:35:30

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 :))

Commentaire de LogOff le 15/11/2005 04:58:32

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.

Commentaire de yabpat le 13/07/2009 19:58:37

j'ai vraiment un problème
j'aimerai ouvrir un repertoire directement a partir ce son chemin d'accès

Commentaire de LogOff le 14/07/2009 18:17:12

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,

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

attendre la fin d'un processus qui n'est pas lancer par mon programme vb :-s [ par youkizouki ] bonjour à tous,je crée une applic qui doit recupérer la date et l'heure de fin d'execution d'un processus prédéfinis.pou lancer .exe d'un programme externe + charge fichier [ par chtebel ] Bonjour alors voila, un souci que je n'arrive pas a resoudre. Je veux lancer un .exe d'un logiciel a partir de VBA. J'ai trouvé sur le net le code qui Lancer une app en haute priorité [ par ian2008 ] Bonjour,Je commence un projet a l'école avec VB Express 2008 et je suis vraiment débutant. Je vous explique le but, je veut faire une application qui [déplacé VB.NET -> CPP] lancer un exécutable par un bouton en c++ [ par nimont010 ] salutje suis face a un petit problèmeje veux lancer un programme a partir un d'autre programme par un click sur un bouton et le travail c'est fais en Lancer un exe externe sous excel [ par Yunchi ] Bonjour,J'ai une fonction VB sous excel :RetVal = Shell("file_analyzer.exe, 1)Donc ça lance un programme dans le même dossier que mon xls.Ce programme lancer un programme au démarrage de Windows [ par nerd24 ] Bonjour, Comment fait-on pour lancer  u pourquoi je dois lancer mon programme 2 fois ? [ par Tyrell2 ] bonjour,j'ai developpé ce petit programme que je lance à partir d'un batch et qui se contente d'effacer le raccourci internet explorer de la quicklaun Lancer un programme depuis une application VS sur PocketPC [ par KIPRE74 ] Bonjour à tous, J'aimerais lancer un programme à partir d'un clic sur un bouton d'une autre application sur mon PocketPC pour le GPS; voici la comman detecter un objet externe au programme [ par jocelyn456 ] Bonjour,je suis en train de faire un programme et pour continuer, je souhaiterais savoir comment faire pour que le programme detecte la position d'un Lancer un programme inséré dans le projet vb [ par remifalcon ] Bonjour ! Je souhaiterai intégrer un programme.exe dans un vb et le lancer lors de l'appui sur un bouton dans le vb.C'est à dire pas juste un raccourc


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,576 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales