![]() |
Windows-Defragmentierung durch Progg starten lassen
Hallo DP'ler :winke:
Ich hab mal wo ein Programm gefunden welches die Windows-Defragmentiierung vor dem Starten aller anderen Programme aktiviert und wollte sowas in der Art auch machen. Mit Shellexecute + Pfad + Parameter würde das auch gehen. Problem daran ist aber dass der Windows-Ordner-Pfad ja nicht überall gleich sein wird. unter "Start -> Ausführen" kann man ja per "defrag" + Parameter diese Defragmentierung starten. Wie bekomm ich das in mein Programm eingebaut? |
Re: Windows-Defragmentierung durch Progg starten lassen
|
Re: Windows-Defragmentierung durch Progg starten lassen
So einfach, wie Du Dir das vorstellst, geht das nicht!
Du kannst nicht mit einem DELPHI-GUI-Programm vor dem Laden von Windows irgendetwas starten. Das DEFRAG-Programm braucht exclusiven Zugriff auf das bearbeitete LW, deshalb ist es sinnvoll, es vor dem Laden des BS zu starten. Ausserdem macht es die Arbeit nicht alleine, sondern startet je nach Aufgabe und Formatierung eines der folgenden Programme: chkntfs.exe dfrgntfs.exe chkdsk.exe dfrgfat.exe Es ist sehr sinnvoll, wenn Du mal die Hilfe für Defrag (defrag.chm) liest! |
Re: Windows-Defragmentierung durch Progg starten lassen
Und wenn ich es bei Run-Once in der Registry eintrage? Dann sollte es doch gehen (da Windows ja schon geladen ist)?
|
Re: Windows-Defragmentierung durch Progg starten lassen
Zitat:
Ich denke mal eher, daß du meinst daß es vor dem Win32-Subsystem gestartet werden muß. Aber man kann diesen Vorgang ja planen (was dann nach dem Reboot ausgeführt wird). |
Re: Windows-Defragmentierung durch Progg starten lassen
Wenn man im CMD "defrag C:" eingibt defragmentiert er ja (soweit ichs mitbekommen hab). Wenn es also möglich wäre das im Shellexecute so einzuarbeiten müsste es ja gehen, oder?
|
Re: Windows-Defragmentierung durch Progg starten lassen
|
Re: Windows-Defragmentierung durch Progg starten lassen
Zitat:
Delphi-Quellcode:
Damit bekommst Du den Windows-Ordern raus, wie auch immer er heissen mag.
GetSpecialFolder
|
Re: Windows-Defragmentierung durch Progg starten lassen
Zitat:
Achso und für native Programme ist es irrelevant. |
Re: Windows-Defragmentierung durch Progg starten lassen
Mit folgender Funktion kannst du den Systempfad herausfinden:
Delphi-Quellcode:
Wobei Gängige System-Verzeichnisse C:\Windows\System oder bei auf NT basierenden Betriebssystemen C:\Windows\System32 sind.
function GetSystemDir: String;
var Dir: String; Len: DWord; begin SetLength(Dir,MAX_PATH); Len:=GetSystemDirectory(PChar(Dir),MAX_PATH); if Len>0 then begin SetLength(Dir,Len); Result:=Dir; end else RaiseLastOSError; end; Und mit folgender kannst du das Windows-Verwzeichniss ermitteln:
Delphi-Quellcode:
PS: Ich rufe meine Defragementierung in meinem Programm wie folgt auf...:
function GetWinDir: String;
var Dir: String; Len: DWord; begin SetLength(Dir,MAX_PATH); Len:=GetWindowsDirectory(PChar(Dir),MAX_PATH); if Len>0 then begin SetLength(Dir,Len); Result:=Dir; end else RaiseLastOSError; end;
Delphi-Quellcode:
Aber das ist halt nur das aufrufen dann musst du slebrer noch deine Parameter einfügen, aber man soll auch irgendwie einen button klick simulieren können
if ShellExecute(Application.Handle,
'open', PChar('C:\Windows\System32\dfrgui.exe'), Nil, Nil, SW_NORMAL) <= 32 then ShowMessage('Es ist ein Fehler aufgetreten'); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz