begin process at 2010 03 18 08:06:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

Exécution

 > 

Fermer un programme externe ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fermer un programme externe ?

samedi 11 mars 2006 à 15:20:35 | Fermer un programme externe ?

kalantho

Bonjour :)
Voilà, étant encore dans le développement de mon utilitaire, j'ai un petit problème pour fermer un programme externe.
En fait en cliquant sur un bouton de mon projet, j'ai une application externe qui se lance, et je souhaiterais qu'en cas de second clic, l'application en question se ferme et se relance.
J'ai bien trouvé diverses solutions pour tuer les processus et fermer des programmes mais ça ne correspondait jamais avec mon cas, j'ai essayé d'intégrer des ligne et de les réadapter à mon projet mais malheureusement à chaque fois y avait un problème. :(
Pourriez vous me venir en aide s'il vous plaît? :)

Merci d'avance ^^
samedi 11 mars 2006 à 17:16:38 | Re : Fermer un programme externe ?

mictif

il faut passer par le handle et l'api sendmessage ...avec tout ca tu devrais trouver ...

samedi 11 mars 2006 à 18:36:27 | Re : Fermer un programme externe ?

kalantho

Désolé mais ça fait seulement une semaine que j'ai commencé à apprendre le VB, et je dois bien avouer que je suis un peu perdu sur ce coup là lol
Pourrais tu m'expliquer de manière un peu plus précise la démarche à suivre s'il te plaît? :)
samedi 11 mars 2006 à 19:37:17 | Re : Fermer un programme externe ?

PCPT

Administrateur CodeS-SourceS
salut,
comment peux-tu authentifier l'appli en question? elle a un caption fixe (genre "Document Sans Titre") ?

samedi 11 mars 2006 à 20:23:27 | Re : Fermer un programme externe ?

kalantho

Oui tout à fait elle a un caption fixe :) En fait c'est TeamSpeak 2 pour être plus précis.
lundi 13 mars 2006 à 02:33:10 | Re : Fermer un programme externe ?

PCPT

Administrateur CodeS-SourceS
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_CLOSE = &H10
Private Const HTCAPTION = 2


lundi 13 mars 2006 à 15:29:20 | Re : Fermer un programme externe ?

kalantho

Merci beaucoup PCPT pour ce code!!! Tu m'ais vraiment d'un très grand secours :) Donc en fait je fais les déclarations ça y a pas de soucis, mais ensuite je dois placer dans mon command1 (par exemple) les lignes :
FindWindowA = TeamSPeak 2
SendMessageA =  kill TeamSpeak 2
?

Enfin je vais essayer et pi ça marche pas je me permettrais peut être de venir t'ennuyer de nouveau :)
Merci encore en tout cas et bonne journée!

lundi 13 mars 2006 à 15:37:12 | Re : Fermer un programme externe ?

kalantho

Ah bah non ça marche pas...j'ai encore beaucoup de mal avec les Déclarations apparement moi. :(
lundi 13 mars 2006 à 16:12:47 | Re : Fermer un programme externe ?

PCPT

Administrateur CodeS-SourceS
Réponse acceptée !
comme presque toute fonction, tu dois l'appeler avec un paramètre, pas lui attribuer une valeur.


si ton caption est vraiment "TeamSPeak 2", alors remplace-le dans la constante ci-dessous.
sinon voici un exemple. il faut ouvrir notepad avant



Option Explicit 
'
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ 
        (
ByVal lpClassName As StringByVal lpWindowName As StringAs Long 
'
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ 
        (
ByVal hwnd As LongByVal wMsg As LongByVal wParam As Long, lParam As Any) As Long 
'
Private Const WM_CLOSE      As Long = &H10 
Private Const HTCAPTION     As Long = 2& 
'
Private Const MON_TITRE     As String = "Sans titre - Bloc-notes" 
'
'
Private Sub Command1_Click() 
    
Dim lHwnd As Long 
    lHwnd = FindWindow(vbNullString, MON_TITRE) 

    
If lHwnd = 0 Then 
        
MsgBox "titre non-trouvé!!!" 
    
Else 
        
Call SendMessage(lHwnd, WM_CLOSE, HTCAPTION, ByVal 0&) 
    
End If 
End Sub 
 


Coloration syntaxique automatique [AFCK]
       


PCPT  [AFCK]

lundi 13 mars 2006 à 16:57:00 | Re : Fermer un programme externe ?

kalantho

Alors je dis merci MONSIEUR PCPT ^^ Cela fonctionne à merveille :-O Je suis vraiment impressionné,déjà par le fait que le code fonctionne  merveille,  et deuxièmement car tu m'as présenté ça d'une manière vraiment très propre et très complète!
Je n'avais pas du tout réussi à trouver un code tel que celui ci (aussi "simple" et nickel) sur le site :) Merci beaucoup!

Si je veux l'adapter à deux programmes par exemple, donc deux boutons différents, j'ai juste à faire :

Private Const MON_TITRE1     As String = "Sans titre - Bloc-notes"
Private Const MON_TITRE2     As String = "MSN Messenger"

et dans les command bouton :

Private Sub Command1_Click() 
    
Dim lHwnd As Long 
    lHwnd = FindWindow(vbNullString, MON_TITRE1)
'etc...
Private Sub Command2_Click() 
    
Dim lHwnd As Long 
    lHwnd = FindWindow(vbNullString, MON_TITRE2)
'etc...

N'est ce pas? :)

1 2

Cette discussion est classée dans : problème, programme, projet, fermer, externe


Répondre à ce message

Sujets en rapport avec ce message

fermer un programme externe à vb6 [ par fredo ] bonsoir,je debute sous vb6. comment fermer un programme externe à vb6 (cad non lance par vb6) dans un programme vb6 ?merci Comment fermer Correctement sont programme ? [ par ExploZe ] Bonjour,Voila alors mon problème est que j'ai fait un programme qui utilise 20 - 25timer ! je sais c'est bcp mais y'en as besoin il sont pas tous acti Problème d'appel à un module externe [ par jacques13 ] Bonjour à tous,Ceci est une question que j'ai posée il y a quelques mois mais pour laquelle je n'ai pas reçu de réponse satisfaisante.Soit un programm problème de package [ par ouat19 ] bonsoir les amis j'ai fini le developpement de mon projet et quand je fais mon package et que je lance l'exécutable de mon projet l'installation se de problème de systray [ par marcod59 ] Bonjour,J'ai un programme systray qui fonctionne bien sur 2 programmes. J'ai commencé une autre application, et j'ai un problème avec ce même systray. Programme qui genere un executable [ par PORTE_BLINDEE ] Voila jai besoin de compiler un projet et sortir un exec a partir d'un autre projet.Jai pour linstant un projet qui utilise des ressources (fichiers b Fermer la connexion ou laisser ouvert ? [ par Akita95 ] Bonjour à tous,Je développe actuellement un programme utilisant une connexion ADO.Ma question est assez simple : Vaut-il mieux ouvrir et fermer une co Problème de déploiement [ par gibea00 ] Bonjour!J'ai un programme qui a été développé en VB5 et que j'ai ouvert dans Microsoft studio 6 et recompilé en VB6.  Je n'ai pas changé le type de co Problème crystal report [ par max12 ] Bonjour, une petite question VB que je poste pour un amis qui n'arrive pas a accèder a VBFrance a partir de son Internet (et la j'ai pas le courage de Le code sur réduire/agrandir/fermer [ par Billybobbonnet ] Bonjour à tous,J'ai terminé un programme et je m'aperçois que lorsque je le ferme en cours de route avec la croix en haut à droite (celle de windows s


Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
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 : 0,343 sec (3)

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