[Déplacé VB6 --> VBS] Fermeture toutes fenetres et Process Internet Explorer en

Signaler
Messages postés
23
Date d'inscription
mardi 28 octobre 2008
Statut
Membre
Dernière intervention
16 juillet 2018
-
Messages postés
23
Date d'inscription
mardi 28 octobre 2008
Statut
Membre
Dernière intervention
16 juillet 2018
-



Bonjour,

J'utilise ce bout de code très efficace pour fermer toutes les fenetres internet explorer ouvertes ca fonctionne mais pourtant avec un timer de 180000 avant checklist de mes process ouverts : (voir prog)
J'ai un message d'erreur systématique (aprés 4-5 traitements) qui me dis objet introuvable pour le killer (ligne objProcess.Terminate() soulignée) et ca me sort de mon programme je comprend pas pourquoi et on error resume next ni goto ne marche :

c'est du vbs mais je vois vraiment pas ou se situe le problème ou comment fermer toutes les fenetres ouvertes via vbs ? car quit ne quitte que la fenetre courante ouverte mais si plusieurs se sont ouvertes (liens...) c'est problématique à force !.

Merci d'avance à tous ! Thierry

WScript.Sleep (180000)

Dim strComputer, objWMIService, colProcess, objProcess

strComputer = "."

Set objWMIService = GetObject("winmgmts:\" & strComputer & "\root\cimv2")

Set colProcess = objWMIService.ExecQuery("SELECT * FROM Win32_Process")

For Each objProcess In colProcess

If objProcess.Name = "iexplore.exe" Then

objProcess.Terminate()

End If

Next

Set colProcess = Nothing

Set objWMIService = Nothing

2 réponses

Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
 Bonjour,


Tutoriel WMI:
www.secretswindows.com

Syntaxe d'un moniker :
GetObject("winmgmts:[securitySetting][localeSetting][!objectPath]")

Exemple:

'Arrêt d'un Process
MyProcess = InputBox(vbCrLf&vbCrLf&"Mettre le service à arrêter"_
&vbCrLf&vbCrLf&"Ex: iexplore","Arrêt du ou des processes" & MyProcess , "iexplore")

strComputer "." : compteur 0
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\" _
    & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
    ("Select * from Win32_Process Where Name =  '" & MyProcess & ".exe'")
For Each objProcess in colProcessList
    'MsgBox objProcess.Name &vbCrLf& " id:" & objProcess.ProcessID 
    objProcess.Terminate()
    compteur = compteur + 1
Next

Set objWMIService = Nothing
Set colProcessList = Nothing
MsgBox compteur & " service(s) " & MyProcess & " arrêté(s)"


jean-marc
Messages postés
23
Date d'inscription
mardi 28 octobre 2008
Statut
Membre
Dernière intervention
16 juillet 2018

Salut !
Merci pour la réponse en fait j'ai trouvé et ca ne plante plus depuis :
(je te donne le code complet au cas ou ....)

Thierry

On Error Resume Next
strComputer = "."
arrTargetProcs = Array("iexplore.exe","calc.exe")
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")
For Each strTargetProc In arrTargetProcs
Set colProcesses = objWMIService.ExecQuery _
("SELECT * FROM Win32_Process WHERE Name='" & strTargetProc & "'")
If colProcesses.Count = 0 Then
WScript.Echo VbCrLf & "No processes named " & strTargetProc & " found."
Else
For Each objProcess in colProcesses
WScript.Echo VbCrLf & "Process Name: " & objProcess.Name
Wscript.Echo "Process ID: " & objProcess.Handle
Wscript.Echo "Attempting to terminate process ..."
intTermProc = TerminateProcess(objProcess)
Next
End If
Next


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

Function TerminateProcess(objProcess)

On Error Resume Next
intReturn = objProcess.Terminate
Select Case intReturn
Case 0 Wscript.Echo "Return code " & intReturn & " - Terminated"
Case 2 Wscript.Echo "Return code " & intReturn & " - Access denied"
Case 3 Wscript.Echo "Return code " & intReturn & " - Insufficient privilege"
Case 8 Wscript.Echo "Return code " & intReturn & " - Unknown failure"
Case 9 Wscript.Echo "Return code " & intReturn & " - Path not found"
Case 21 Wscript.Echo "Return code " & intReturn & " - Invalid parameter"
Case Else Wscript.Echo "Return code " & intReturn & _
" - Unable to terminate for undetermined reason"
End Select
TerminateProcess = intReturn

End Function