Birgit25 10 Geschrieben 5. Februar 2008 Melden Teilen Geschrieben 5. Februar 2008 Hallo, ich habe hier ein Defragmentierungsscript, das ich schon seit Jahren unter Windows 2000 einsetzte. Dieses läuft leider nicht unter Windows XP. Ich möchte gerne diese grafische Oberfläche bei Defragmentieren haben. Gibt es eine Möglichkeit mit entsprechenden Änderungen dieses unter XP einzusetzten? 'aut0matisches defrag-Start VB-Script für Windows 2000 'Shell-Objekt initialisieren Set WshShell = CreateObject("WScript.Shell") 'Defrag-Management-Console mit gewünschtem Laufwerk starten WshShell.Run "dfrg.msc c:" 'Warteschleife, bis das Fenster "Defragmentierung" erscheint While WshShell.AppActivate("Defragmentierung") = FALSE Wscript.Sleep 1000 Wend 'Defragmentierungs-Fenster zur Sicherheit nochmal aktivieren WshShell.AppActivate "Defragmentierung" Wscript.Sleep 200 'Tastenfolge zum Start der Defragmentierung senden WshShell.SendKeys "%OD" 'Warten, bis Defragmentierung beendet ist (alle 5 Sek. auf Erscheinen der Meldungsbox testen) While WshShell.AppActivate("Defragmentierung abgeschlossen") = FALSE Wscript.Sleep 5000 Wend 'Meldungsbox zur Sicherheit nochmal aktivieren WshShell.AppActivate "Defragmentierung abgeschlossen" WScript.Sleep 200 'Tastenkombination ALT+F4 zum Schliessen der Meldungsbox senden WshShell.Sendkeys "%{F4}" WScript.Sleep 200 'Tastenkombination ALT+F4 zum Beenden von Defrag senden WshShell.Sendkeys "%{F4}" Würde mich sehr freuen! LG. Birgit Zitieren Link zu diesem Kommentar
!aN 10 Geschrieben 5. Februar 2008 Melden Teilen Geschrieben 5. Februar 2008 Unter XP geht es ohne grafische Oberfläche recht einfach: Konsole -> defrag.exe c: -f -v Einen Moment bitte. Zitieren Link zu diesem Kommentar
!aN 10 Geschrieben 5. Februar 2008 Melden Teilen Geschrieben 5. Februar 2008 Also. Ich hatte das mal vor einiger Zeit probiert umzuschreiben, ist zwar nicht ganz ausgereift, funktioniert aber (zumindest bei mir). Kannste ja mal probieren, keine Gewähr: ' Original: http://home.arcor.de/st.gaumitz/progs/scripts/defrag/ 'Defrag-Start und Beenden mit VB-Script bei WinXP 'Shell-Objekt initialisieren Set WshShell = CreateObject("WScript.Shell") 'Defrag-Management-Console starten WshShell.Run ("dfrg.msc") 'Warten, bis das Fenster "Defragmentierung" erscheint While WshShell.AppActivate("Defragmentierung") = FALSE Wscript.Sleep 1000 Wend 'Defragmentierungs-Fenster zur Sicherheit nochmal aktivieren WshShell.AppActivate "Defragmentierung" Wscript.Sleep 2000 ' In das Menü mit der Laufwerksauswahl wechseln: WshShell.SendKeys "{TAB}" WScript.Sleep 1000 WshShell.SendKeys "{TAB}" WScript.Sleep 1000 'Pfeiltaste: ' Folgenden Befehl benutzen, um ein Laufwerk tiefer auszuwählen, ' Beispiel: In der Liste werden C: D: E: F: untereinander angezeigt. Für "C:" den Befehl auskommentiert lassen. Für "E:" ihn zwei mal schreiben, also ' WshShell.SendKeys "{DOWN} {DOWN}" ' usw. 'WshShell.SendKeys "{DOWN}" WScript.Sleep 1000 ' In das Feld "Defragmentierung" wechseln und die Defragmentierung auslösen: WshShell.SendKeys "{TAB}" WScript.Sleep 1000 WshShell.SendKeys "{TAB}" WScript.Sleep 1000 WshShell.SendKeys "{ENTER}" ' 20 Sekunden warten, falls die meldung "Wenig Speicherplatz, trotzdem Defragmentieren?" erscheint, vorsorglich dann Enter senden Wscript.Sleep 20000 WshShell.SendKeys "{ENTER}" 'Warten, bis Defragmentierung beendet ist '(alle 5 Sek. auf Erscheinen der Meldungsbox testen) While WshShell.AppActivate("Defragmentierung") = FALSE Wscript.Sleep 2000 Wend 'Tastenkombination ALT+F4 zum Schliessen der Meldungsbox senden WScript.Sleep 500 WshShell.Sendkeys "{DOWN}" WScript.Sleep 200 WshShell.Sendkeys "{ENTER}" WScript.Sleep 200 'Tastenkombination ALT+F4 zum Beenden von Defrag senden 'WshShell.Sendkeys "%{F4}" Zitieren Link zu diesem Kommentar
Birgit25 10 Geschrieben 5. Februar 2008 Autor Melden Teilen Geschrieben 5. Februar 2008 Hallo, das Script arbeit ordnungsgemäß, schließt sich aber am Ende nicht selber. Dennoch danke! LG. Birgit Zitieren Link zu diesem Kommentar
!aN 10 Geschrieben 5. Februar 2008 Melden Teilen Geschrieben 5. Februar 2008 Ich weiß, ich bekomme die Meldung über das Beenden leider nicht verarbeitet, da das Fenster den selben Titel wie die Anwendung hat. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.