Script um Prozesse (excel) zu beenden

  • VBScript

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von highxvoltage1989.

    Script um Prozesse (excel) zu beenden

    Visual Basic-Quellcode

    1. 'Zeit: WScript.Sleep 1000 * 60 * 3 'ms * secs per min * minutes
    2. '---------------------------------------------------------------------------------------
    3. 'Überprüft ob EXCEL läuft:
    4. '------------------------------------------
    5. strComputer = "."
    6. Set objWMIService = GetObject("winmgmts:" _
    7. & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    8. Set colProcesses = objWMIService.ExecQuery _
    9. ("Select * from Win32_Process Where Name = 'excel.exe'")
    10. 'Wenn EXCEL läuft, wird eine Info ausgeworfen und der Prozess wird dann nach 3 Minuten beendet:
    11. '-------------------------------------------------------------------------------------------------
    12. If colProcesses.Count = 1 Then
    13. Dim Answer
    14. Set WshShell = WScript.CreateObject("WScript.Shell")
    15. Answer = WshShell.Popup("Excel wird in 3 Minuten beendet!", 3, "Info", 0 + 64)
    16. WScript.Sleep 1000 * 60 * 3 'ms * secs per min * minutes
    17. strComputer = "."
    18. Set objWMIService = GetObject("winmgmts:" _
    19. & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    20. i=kill
    21. Do while i=kill
    22. Set colProcessList = objWMIService.ExecQuery _
    23. ("Select * from Win32_Process Where Name = 'excel.exe'")
    24. For Each objProcess in colProcessList
    25. objProcess.Terminate()
    26. Next
    27. WScript.Sleep 1000 * 60 * 3 'ms * secs per min * minutes
    28. Loop
    29. 'Wenn EXCEL nicht läuft, dann überprüfe in 5 Minuten wieder nach ob es läuft (=BEGINNE DIESES SCRIPT VON VORNE)
    30. '-------------------------------------------------------------------------------------------------------------------
    31. Else
    32. Wscript.Sleep 1000 * 60 * 5 'ms * secs per min * minutes
    33. end if
    34. 'Hier den Pfad Eingeben, wo dieses Script liegt.
    35. '------------------------------------------------------------------------------------------------------
    36. Return = WshShell.Run ("Pfad")


    Hey Leute,

    ich wollte folgendes basteln, und zwar wird das Skript gestartet.
    Nun soll es schaun, ob ein Excel-Prozess läuft...wenn ja, dann soll dieser nach 3 Minuten beenden werden.
    Sollte in der Zwischenzeit ein weiterer Excel-Prozess auftauchen, soll dieser natürlich auch nach 3 Minuten beendet werden usw.
    Habe jedoch das Problem, dass er mir sofort alle Excel-Prozesse abschießt.
    Wenn kein Excel läuft, soll halt ständig überprüft werden, ob ein Excel-Prozess läuft oder nicht....
    Das Skript funktioniert teilweise, seht ihr paar Fehler oder die Möglichkeit es einfacher zu gestalten?!

    Folgender Fehler taucht auch unteranderem auf:
    Objekt erforderlich "WshShell"

    Danke und Gruß
    Volti :)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „highxvoltage1989“ ()

    Moin, lässt die Aufgabe sich den auch mit so einem Skript lösen? (PID? also Prozess ID um Excel-Prozesse zu unterscheiden?!)

    Habe gerade auch nach AddIn's geschaut, jedoch nichts passendes gefunden, welches AddIn meinst du?

    mfg ;)