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

thierryd75 Messages postés 23 Date d'inscription mardi 28 octobre 2008 Statut Membre Dernière intervention 16 juillet 2018 - 25 oct. 2009 à 16:35
thierryd75 Messages postés 23 Date d'inscription mardi 28 octobre 2008 Statut Membre Dernière intervention 16 juillet 2018 - 26 oct. 2009 à 09:48



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

cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
26 oct. 2009 à 08:53
 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
0
thierryd75 Messages postés 23 Date d'inscription mardi 28 octobre 2008 Statut Membre Dernière intervention 16 juillet 2018
26 oct. 2009 à 09:48
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
0
Rejoignez-nous