Utilisateur anonyme
-
24 sept. 2009 à 16:47
cs_kar1
Messages postés4Date d'inscriptionvendredi 20 juin 2003StatutMembreDernière intervention24 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 ?
Claiyah
Messages postés580Date d'inscriptionmercredi 20 août 2008StatutMembreDernière intervention20 avril 20103 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
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).
cs_kar1
Messages postés4Date d'inscriptionvendredi 20 juin 2003StatutMembreDernière intervention24 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...