Fermer un processus ouvert par une application

Utilisateur anonyme - 24 sept. 2009 à 16:47
cs_kar1 Messages postés 4 Date d'inscription vendredi 20 juin 2003 Statut Membre Dernière intervention 24 février 2010 - 7 déc. 2009 à 18:04
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

Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 3
25 sept. 2009 à 03:34
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
0
Utilisateur anonyme
25 sept. 2009 à 09:13
Salut,
merci je teste ça de suite et fait un retour.
0
Utilisateur anonyme
25 sept. 2009 à 09:29
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).
0
cs_kar1 Messages postés 4 Date d'inscription vendredi 20 juin 2003 Statut Membre Dernière intervention 24 février 2010
4 déc. 2009 à 12:04
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 :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
7 déc. 2009 à 15:27
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+
0
cs_kar1 Messages postés 4 Date d'inscription vendredi 20 juin 2003 Statut Membre Dernière intervention 24 février 2010
7 déc. 2009 à 18:04
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+
0
Rejoignez-nous