[Déplacé VB6 --> VBS] Fermeture toutes fenetres et Process Internet Explorer en
thierryd75
Messages postés23Date d'inscriptionmardi 28 octobre 2008StatutMembreDernière intervention16 juillet 2018
-
25 oct. 2009 à 16:35
thierryd75
Messages postés23Date d'inscriptionmardi 28 octobre 2008StatutMembreDernière intervention16 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")
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)"
thierryd75
Messages postés23Date d'inscriptionmardi 28 octobre 2008StatutMembreDernière intervention16 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