Fermer un processus ouvert par une application

Signaler
-
Messages postés
4
Date d'inscription
vendredi 20 juin 2003
Statut
Membre
Dernière intervention
24 février 2010
-
Bonjour,

dans mon programme, je fais appel à un objet qui permet de lancer un autre programme qui tourne en tâche de fond et permet d'accéder à un logiciel d'édition/impression d'étiquettes.

Lors de l'impression d'une étiquette, j'y fais appel, et j'ai géré le fait qu'il ne puisse se lancer qu'en un seul exemplaire.
Problème : j'aimerai que, en quittant le programme (par un bouton 'Quitter' par exemple), il ferme ce processus, même sauvagement.

J'ai recherché et visualisé les nombreuses sources à ce sujet, mais pas trouvé exactement ce que je recherchais, ou alors je suis passé à côté ...

J'ai tenté avec la fonction 'Kill', mais un peu trop radicale vu qu'elle efface littéralement l'exécutable (heureusement que je l'avais copié).

Donc ma question est simple : est-il possible de fermer un processus simplement, en sachant que son chemin d'accès est fixe (et peut donc être fixé en brut) et que je peux l'arrêter sans confirmation ?


D'avance merci

6 réponses

Messages postés
580
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
20 avril 2010
3
bonsoir, voila un code que j'utilise et que j'ai trouvé sur un autre forum:


Il est possible de lister les processus actifs sur une machine en utilisant les fonctions de l'API Windows
Mais il existe une astuce beaucoup plus simple à l'aide d'un petit script WMI, utilisant la classe Win32_process (testé sur Windows 2000, XP)


Private Sub Command1_Click()
Dim svc As Object
Dim sQuery As String
Dim oproc
On Error GoTo Command1_Click_Error

Set svc = GetObject("winmgmts:root\cimv2")
sQuery = "select * from win32_process"
For Each oproc In svc.execquery(sQuery)
Debug.Print oproc.Name & " = " & oproc.ExecutablePath
Next
Set svc = Nothing
Exit Sub

Command1_Click_Error:
MsgBox "Error " & Err.Number & " (" & Err.Description & ")"
Err.Clear
End Sub


de rien

Salut,
merci je teste ça de suite et fait un retour.

Bon, j'ai eu droit à un code d'erreur, mais en me rendant plus en profondeur dans le programme, j'ai remarqué une fonction dédiée à cela, que j'ai donc utilisé, merci pour ton aide en tout cas, j'ai du zapper un truc de mon côté x).

Bonne journée (et bon week-end à l'avance).
Messages postés
4
Date d'inscription
vendredi 20 juin 2003
Statut
Membre
Dernière intervention
24 février 2010

Salut !
moi ça m'intéresserait bien de savoir du coup ce que tu as utilisé ?
Tu pourrais me donner des éléments de réponses please ?
Merci :)
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
10
Salut,

regarde de ce coté :

TerminateProcess de la Library "kernel32"

un exemple sous excel mais completement implementable dans VB6 puisque basé sur les API :

http://www.vbfrance.com/codes/TUER-SESSION-CACHEE-EXCEL-PARTIR-AUTRE-SESSION_47514.aspx

pour plus d'info sur l'API TerminateProcess la bible incontournable : AllAPI.net

A+
Messages postés
4
Date d'inscription
vendredi 20 juin 2003
Statut
Membre
Dernière intervention
24 février 2010

Merci pour ta réponse.
Après avoir testé la solution de claiyah,
j'ai finalement choisi de laisser Acrobat Reader tourner sinon j'ai des problèmes lorque je lance plus de 2 fois mon programme en même temps...

A+