.
Anmeldung | Registrieren | Hilfe
in Suchen

Excel PIDs durch VBS beenden

Letzter Beitrag 25. Aug 2010 10:00 von highxvoltage1989. 0 Antworten.
Seite 1 von 1 (1 Treffer)
Beiträge sortieren: Zurück Weiter
  • 25. Aug 2010 10:00

    Excel PIDs durch VBS beenden

    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?!

    (PID? also Prozess ID um Excel-Prozesse zu unterscheiden?!)

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

    Danke und Gruß
    Volti ;)


    'Zeit: WScript.Sleep 1000 * 60 * 3 'ms * secs per min * minutes
    
    
    '---------------------------------------------------------------------------------------
    
    
    
    
    
    'Überprüft ob EXCEL läuft:
    
    
    '------------------------------------------
    
    
    strComputer = "."
    
    
    Set objWMIService = GetObject("winmgmts:" _
    
    
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    
    
    Set colProcesses = objWMIService.ExecQuery _
    
    
    ("Select * from Win32_Process Where Name = 'excel.exe'")
    
    
    
    
    
    
    
    
    'Wenn EXCEL läuft, wird eine Info ausgeworfen und der Prozess wird dann nach 3 Minuten beendet:
    
    
    '-------------------------------------------------------------------------------------------------
    
    
    
    
    
    If colProcesses.Count = 1 Then
    
    
    
    
    
    Dim Answer
    
    
    Set WshShell = WScript.CreateObject("WScript.Shell")
    
    
    Answer = WshShell.Popup("Excel wird in 3 Minuten beendet!", 3, "Info", 0 + 64)
    
    
    WScript.Sleep 1000 * 60 * 3 'ms * secs per min * minutes
    
    
    
    
    
    strComputer = "."
    
    
    Set objWMIService = GetObject("winmgmts:" _
    
    
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    
    
    
    
    
    i=kill
    
    
    Do while i=kill
    
    
    Set colProcessList = objWMIService.ExecQuery _
    
    
    ("Select * from Win32_Process Where Name = 'excel.exe'")
    
    
    For Each objProcess in colProcessList
    
    
    objProcess.Terminate()
    
    
    Next
    
    
    WScript.Sleep 1000 * 60 * 3 'ms * secs per min * minutes
    
    
    Loop
    
    
    
    
    
    'Wenn EXCEL nicht läuft, dann überprüfe in 5 Minuten wieder nach ob es läuft (=BEGINNE DIESES SCRIPT VON VORNE)
    
    
    '-------------------------------------------------------------------------------------------------------------------
    
    
    
    
    
    Else
    
    
    Wscript.Sleep 1000 * 60 * 5 'ms * secs per min * minutes
    
    
    end if
    
    
    
    
    
    'Hier den Pfad Eingeben, wo dieses Script liegt.
    
    
    '------------------------------------------------------------------------------------------------------
    
    
    
    
    
    Return = WshShell.Run ("Pfad")

    Abgelegt unter: , , , ,
    • IP-Adresse ist Registriert
Seite 1 von 1 (1 Treffer)

WPF Forum | ASP.NET Forum | ASP.NET MVC Forum | Silverlight Forum | Windows Phone 7 Forum | SharePoint Forum | Dotnet Jobs | Dotnet Termine | Developer Blogs | Dotnet News

Das Team | Regeln | Impressum