chercher applications actives et les clore

zeb33

XLDnaute Junior
Bonjour,
bon désolé, j'ai déjà posté la même demande par erreur dans présentations de snouveaux membres et c'était pas le lieu.:confused:

Voilà mon pb .

Au début d'une macro, je désire connaître les applications actives (pdfcreator notamment) afin d'en clore est démarrer la suite de la macro.

Aujourd'hui la macro actuelle (réalisée gràce à vous tous) génére des fichiers pdf qui sont images d'une feuille de calcul.
Une fois ces fichiers générés ils sont envoyés à automatiquement à un destinataire dont je lis l'adresse dans une feuille excel.

Je génère environ 150 fichiers, et parfois pdfcreator se plante (malgré différentes tempo), ne se ferme pas correctement. La macro actuelle m'éjecte car il y un test.

Encore désolé.

Merci d'avance
 

Sylvain

XLDnaute Occasionnel
Re : chercher applications actives et les clore

Bonsoir,

du coup dans les liens affichés sous ton post on a :

https://www.excel-downloads.com/threads/le-pc-les-autres-applications-et-windows.36586/

et dedans on a :

Sub fermerUneApplication()
'testé avec Excel2002 et WinXP
Dim objProcess As Object, colProcessList As Object, objWMIService As Object
Dim strComputer As String
strComputer = '.'
Set objWMIService = getObject('winmgmts:' _
& '{impersonationLevel=impersonate}!\\\\' & strComputer & '\\root\\cimv2')
Set colProcessList = objWMIService.execQuery _
('Select * from Win32_Process Where Name = 'Notepad.exe'')
For Each objProcess In colProcessList
objProcess.Terminate
Next
End Sub

Bien faire une copie de ton projet car ce genre de procédures peut amener des surprises.
 

zeb33

XLDnaute Junior
Re : chercher applications actives et les clore

Bonsoir,

Bon désolé, je ne comprend pas le lien ni d'ou il vient.

J'ai déjà vu cette macro, mais elle ne concerne que notepad, et on vise à gérer notepad.
Je cherche une solution pour déterminer quelles sont les applications ouvertes afin de fermer celles qui gènent.

Merci
A+
 

zeb33

XLDnaute Junior
Re : chercher applications actives et les clore

Bonsoir, Staple1600

Oui alt+ctrl+sup, c'est bien.
Mais je désire intégrer une méthode opérationnelle pour un opérateur qui n'est pas familier de Windows et utilise mon fichier (pas commercial mais utilisé pour l'enseignement).

Merci A+
 

Staple1600

XLDnaute Barbatruc
Re : chercher applications actives et les clore

Re


Autrement comme indiqué plus bas par Sylvain

Code:
Sub fermerUneApplication()
'testé avec Excel2002 et WinXP
Dim objProcess As Object, colProcessList As Object, objWMIService As Object
Dim strComputer As String
strComputer = '.'
Set objWMIService = getObject('winmgmts:' _
& '{impersonationLevel=impersonate}!\\\\' & strComputer & '\\root\\cimv2')
Set colProcessList = objWMIService.execQuery _
('Select * from Win32_Process Where Name = '[B]Pdfcreator.exe[/B] '')
For Each objProcess In colProcessList
objProcess.Terminate
Next
End Sub
 

zeb33

XLDnaute Junior
Re : chercher applications actives et les clore

Rebonsoir Staple1600
et merci pour ta patience,

Bon, j'ai esayé le code mais j'ai une erreur de compilation à la ligne : Set colProcessList =..
Peux tu m'expliquer la macro, car je ne comprend pas tout notamment le contenu des parenthèses pour getobject ainsi que la signification de objWMIService.execQuery...
Bon j'imagine que ca marche pour PDFCreator, mais que se passe t-il si j'ai aussi une autre application active (ce que j'ignore au départ de la macro) et que je désire la fermer ?

Cordialement

Denis
 

Staple1600

XLDnaute Barbatruc
Re : chercher applications actives et les clore

Re


Code VBA compatible avec Excel 2000/W98SE

Pour tester , ouvre le bloc-notes

Puis lance la macro Test_Close

(Le nom de la fenêtre à fermer doit être correctement orthographié)

Pour adapter à ton cas, (en tout cas tester avec PdfCreator)

Remplace Sans titre - Bloc-Notes par le nom excact de la fenetre de PdfCreator

Code:
Private Declare Function FindWindow _
Lib "user32" _
Alias "FindWindowA" _
( _
ByVal lpClassName As String, _
ByVal lpWindowName As String _
) _
As Long

'*****************************************
'API Bring Window to foreground
Private Declare Function SetForegroundWindow _
Lib "user32" _
( _
ByVal hwnd As Long _
) _
As Long
'*****************************************
'API Send message to application
Private Declare Function PostMessage _
Lib "user32" _
Alias "PostMessageA" _
( _
ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any _
) _
As Long
'*****************************************
Const WM_CLOSE = &H10

'*****************************************

Function Close_By_Caption(AppCaption As String)

Dim hwnd As Long

hwnd = FindWindow(vbNullString, AppCaption)

If hwnd Then
'Bring to Front
SetForegroundWindow hwnd
'Close the app nicely
PostMessage hwnd, WM_CLOSE, 0&, 0&
End If
End Function
'*****************************************

Sub Test_Close()
Close_By_Caption "[B]Sans titre - Bloc-Notes[/B]"
End Sub
'//////////////////////////////////
'SOURCE :John Madden
'Close Application from VBA Event
'/////////////////////////////////
 
Dernière édition:

zeb33

XLDnaute Junior
Re : chercher applications actives et les clore

Bonjour, Stapl1600

Bon désolé mais j'ai pas su laner ta macro (depuis ou ewxcel, il ne la trouve pas si je ne la copie pas ?).

Je te joint la macro que j'utilise.
J'ai 4 feuilles excel
semestre 1 : liste et notes des etudiants,
relevé semestre 1 : mise en page pour un seul etudiant
trombi : une feuille qui me permet d'avoir le trombinoscope des étudiants, je colle leur photos dans relevé semestre 1
macro une feuille avec des boutons pour mes macros, mes tempo, mes choix deroulants de type de fichier.

Comme PDFCreator se plante parfois, j'ai ajouter des tempos, je peux égalemen,t demarrer mes creations de fichiers d'un numéro de lignes donné à un autre (supérieur bien sur j'utilise la fonction validation).

J'ai donc envisagé une solutions qui est de chercher les applications actives les fermer le cas échéant (lorque il y a beaucoup de taxches de fond, le risque de lpantage de la macro augmente.).

Merci beaucoup

cordialement
Denis
 

zeb33

XLDnaute Junior
Re : chercher applications actives et les clore

Bonnjour,

C'est encore moi.

J'ai trouvé sur le site Mcrosoft à l'adresse :
Ce lien n'existe plus
Un certains nombre de renseignements concernant le traitement des applications externes.
D'autre part, un ancien post
https://www.excel-downloads.com/threads/le-pc-les-autres-applications-et-windows.36586/
traité déjà de ces problèmes sur les conseils de Stapl1600 et Sylvain j'ai essayé mais rien ne marche sur mon ordi, notamment la fermeture de notepad qui semble semble (pas pour moi).

Quelqu'un a t-il une réponse ?

Merci
 

Statistiques des forums

Discussions
312 608
Messages
2 090 189
Membres
104 446
dernier inscrit
Phil A