CCleaner bereinigen und PC herunterfahren

Veröffentliche deine funktionierenden Skripte und Funktionen

Moderator: jNizM

Best-Code-in-Use
Posts: 184
Joined: 01 Dec 2015, 05:13
Location: Germany

CCleaner bereinigen und PC herunterfahren

03 Feb 2016, 04:22

Hallo Gemeinde...

viele Personen setzen auf Ihrem Rechner den ccleaner ein.
Ob das unbedingt sinnvoll ist, oder nicht, möchte ich an dieser Stelle mal dahingestellt sein lassen. Ich finde es zumindest praktisch um bestimmte Spuren im System zu löschen....

Wie auch immer:

Das angehängte Script bereinigt den PC und fährt ihn anschließend herunter.
Das könnte der ccleaner auch selbst und zwar mit den Befehlserweiterungen:
ccleaner.exe /auto /shutdown

ABER: Es kann dann passieren das er noch auf hängende Programme wartet. Dies wirkt beim herunterfahren immer sehr unprofessionell.
Zwar könnte das mit einem Registry Eingriff ebenfalls beschleunigt werden, aber wer will das denn an jedem Rechner durchführen.
Dies übernimmt die Windows eigene shutdown.exe selbst:

Code: Select all

/*
fuehre shutdown.exe versteckt (, "Arbeitsverzeichniss" , Hide) aus und
fahre den PC herunter (Schalter /s), beende alle laufenden Prozesse sofort (Schalter /f),
zeige keinen Dialog an und warte nicht mit dem Herunterfahren (Schalter: /t 0  =  0 Sekunden)
*/
Run, C:\Windows\System32\shutdown.exe /s /f /t 0, ,Hide
Return
Voraussetzungen:

Der CCleaner muß einmal gestartet werden und die (zusätzlich) zu bereinigenden Elemente müssen ausgewählt werden.
GANZ WICHTIG:
Unter "Einstellungen" >> "Überwachung" >> "Systemüberwachung aktivieren" und "Überwachung aktivieren" müssen anschließend alle Haken entfernt werden. Bei der ProVersion zusätzlich noch "Browserüberwachung aktivieren" ebenfalls den Haken entfernen, soweit aktiviert.

Hintergrund:

Das Script startet den ccleaner.exe Prozess. Ist die Überwachung aber aktiv, läuft dieser ja bereits und die nachfolgenden Befehle können nicht funktionieren.
Zwar dauert das Herunterfahren etwas länger, dafür wird aber auch alles in einem Rutsch erledigt!
Windows-bereinigen-beenden.ahk
(5.14 KiB) Downloaded 263 times
Allerdings könnte das mit der UAC kollidieren, sofern diese aktiv ist. Dann muss mit dem von moefr01 erstellten Script eine Aufgabe erstellt werden und eine Verknüpfung auf dem Desktop erfolgen:
https://autohotkey.com/boards/viewtopic ... 10&t=10733

Code: Select all

#NoTrayIcon ; Das AHK Symbol wird nicht angezeigt
#SingleInstance force ; Bei Neustart des Scriptes die alte Instanz ohne Nachfrage ersetzen
#Persistent ; Keeps a script permanently running - fuer den Timer notwendig

; ###########################################################
CCleaner := A_Is64bitOS ? "ccleaner64.exe" : "ccleaner.exe"
; Ist es ein 64 bit System?
; ###########################################################

If (FileExist("C:\Program Files\CCleaner")) ;  Pruefe ob der Ordner vorhanden ist
	RunWait, C:\Program Files\CCleaner\%CCleaner% /Auto, , ; Der CCleaner laeuft versteckt und automatisch mit den aktuell gespeicherten Optionen um den PC zu reinigen
Else ; wenn C:\Program Files\CCleaner nicht gefunden wurde, den naechstmoeglichen Pfad testen
	{
		RunWait, C:\Program Files (x86)\CCleaner\%CCleaner% /Auto, ,  UseErrorLevel; Der CCleaner laeuft versteckt und automatisch mit den aktuell gespeicherten Optionen um den PC zu reinigen
		If ErrorLevel ; der CCleaner wurde nicht an den ueblichen Zielen gefunden
			{
				MsgBox, 
				( Join
				Der CCleaner wurde nicht gefunden!`n`nEventuell wird eine portable Version verwendet, oder die Installation wurde in einem anderen Ordner oder auf einem anderen Laufwerk durchgeführt!
				)
				ExitApp
			}
	}
	

	
; MsgBox, 
;				( Join
;				Die Bereinigung mit dem CCleaner verlief erfolgreich!
;				)	
; ExitApp



SetTimer, Shutdown, 1000 ; erstelle einen Timer, und wiederhole ihn jede Sekunde (in Millisekunden)
Return

Shutdown: ; was soll der Timer genau machen:
Process, Exist, %CCleaner% ; prueft ob der CCleaner Prozess noch laeuft
If !ErrorLevel ; wenn der CCleaner Prozess nicht mehr gefunden wird - fuehre den naechsten Befehl aus
Run, C:\Windows\System32\shutdown.exe /s /f /t 0, ,Hide ; fuehre shutdown.exe versteckt (, "Arbeitsverzeichniss" , Hide) aus und fahre den PC herunter (Schalter /s), beende alle laufenden Prozesse sofort (Schalter /f), zeige keinen Dialog an und warte nicht mit dem Herunterfahren (Schalter: /t 0  =  0 Sekunden)
Return




/*

###########################################################
shutdown /s /f /t 0

Dabei bewirkt /s das Herunterfahren, /f erzwingt das Schließen ausgeführter Anwendungen ohne Warnung
und /t gibt das Zeitlimit für das Herunterfahren an, t 0 = 0 Sekunden, also sofort! Ohne Zeitangabe wird der Standart: 30 Sekunden ausgefuehrt

Syntax: C:\Windows\System32\shutdown.exe [/i | /l | /s | /r | /g | /a | /| /e] [/f] [/m \\Computer][/t xxx][/d [p:]xx:yy [/c "Kommentar"]]
	
    /?         Zeigt die Hilfe an. Dies entspricht einer Eingabe ohne Option
    /i         Zeigt eine grafische Benutzeroberfläche an. Dies muss die erste Option sein.
    /l         Abmelden. Dies kann nicht mit den Optionen /m oder /d verwendet werden.
    /s         Fährt den Computer herunter.
    /r         Fährt den Computer herunter und startet ihn neu.
    /g         Fährt den Computer herunter und starten ihn neu. Nach dem Neustart des Systems werden die registrierten Anwendungen gestartet.
    /a         Bricht das Herunterfahren des Systems ab. Diese Option kann während der Zeitüberschreitungsperiode verwendet werden.
    /p         Schaltet den lokalen Computer ohne Zeitlimitwarnung aus. Kann mit den Option /d und /f verwendet werden.
    /h         Versetzt den lokalen Computer in den Ruhezustand. Kann mit der Option "/f" verwendet werden.
    /e         Dokumentiert die Ursache für das unerwartete Herunterfahren eines Computers.
    /m \\Computer Legt den Zielcomputer fest.
    /t xxx     Legt die Zeitüberschreitungsperiode vor dem Herunterfahren fest. Gültiger Bereich: 0-315360000 (10 Jahre),
			der Standardwert ist 30. Wenn der Zeitüberschreitungswert größer ist als 0, wird der Parameter /f einbezogen.
    /c "Kommentar" Kommentar bezüglich des Neustarts bzw. Herunterfahrens. Es sind maximal 512 Zeichen zulässig.
    /f         Erzwingt das Schließen ausgeführter Anwendung ohne Vorwarnung
               Der Parameter /f wird einbezogen, wenn ein Wert größer als 0 für den Parameter /t angegeben wird.

###########################################################


###########################################################
Moegliche Programmpfade: 

"C:\Program Files (x86)\CCleaner\CCleaner.exe"
"C:\Program Files (x86)\CCleaner\CCleaner64.exe"
"C:\Program Files\CCleaner\CCleaner.exe"
"C:\Program Files\CCleaner\CCleaner64.exe"

CCleaner.exe /AUTO
Der CCleaner laeuft versteckt und automatisch mit den aktuell gespeicherten Optionen um den PC zu reinigen.
Es wird das Traysymbol angezeigt und Balloon-Tipps werden eingeblendet

CCleaner.exe /AUTO /SHUTDOWN
Der CCleaner laeuft versteckt und automatisch mit den aktuell gespeicherten Optionen um den PC zu reinigen.
Es wird das Traysymbol angezeigt und Balloon-Tipps werden eingeblendet
Dann wird Windows automatisch heruntergefahren. Es muss der Befehl / AUTO vorangestellt sein.
Das Problem Prozesse werden nicht gekillt, sondern es wird gewartet bis die Prozesse beendet wurden 
(per Windows Default sind das 30 Sekunden)

Die Loesung: ein Shutdown Batchbefehl der anschliessend ausgefuehrt wird
###########################################################

*/
Greetings Best-Code-in-Use

Return to “Skripte und Funktionen”

Who is online

Users browsing this forum: No registered users and 50 guests