Seite 1 von 1

Windows XP - Check Disk

Verfasst: 26.02.2010 11:51
von purebas
Wie kann ich das WindowsXP-Tool "Check Disk" per WinAPI aufrufen?
Ich meine das Tool, was man bei der Laufwerks-Eigenschaft unter
Extras -> "Jetzt prüfen..." aufrufen kann.

Re: Windows XP - Check Disk

Verfasst: 26.02.2010 14:09
von Vera
Hallo purebas,

vielleicht hilft Dir folgendes weiter:

- How to perform disk error checking in Windows XP
- Chkdsk

Gruß ~ Vera

Re: Windows XP - Check Disk

Verfasst: 26.02.2010 14:17
von Kaeru Gaman
wieso per WinAPI...? :?

probier doch mal RunProgram("chkdsk" ...

Re: Windows XP - Check Disk

Verfasst: 26.02.2010 15:29
von purebas
Ich möchte aus meinem Programm das Windows-Tool mit der Oberfläche aufrufen.
Bei meinem Programm handelt es sich um ein Tool für USB-Sticks. Da öfters
Probleme mit dem Dateisystem auftreten, möchte ich dem Anwender ermöglichen,
das kleine Windows-Tool starten zu können.
Irgentwie finde ich den Kommandozeilenbefehl für den Anwender inakzeptabel,
wobei ich den doch nehme, wenn es garnicht anders geht.

Re: Windows XP - Check Disk

Verfasst: 26.02.2010 18:10
von Little John
Angenommen der USB-Stift ist Laufwerk H:, dann könntest Du evtl. folgendes versuchen:

Code: Alles auswählen

RunProgram("explorer", "H:", "")
Anschließend mit Hilfe der AutoWin UserLibrary o.Ä.
Kontextmenu > Eigenschaften > Extras ... usw.
aufrufen (Windows XP). Für andere Windows-Versionen sind z.T. andere Aufrufe nötig. Das ist nicht elegant, aber wenn es nicht anders geht ...

//edit:
So geht's schon mal:

Code: Alles auswählen

; getestet mit PB 4.41 und AutoWin 1.0 unter Windows XP Pro x86

XIncludeFile "AutoWin_Include.pbi"

Procedure CheckDisk (Laufwerk$)
   RunProgram("explorer", Laufwerk$, "")
   AW_WinWait(LaufWerk$)
   AW_SendKeys("{SHIFTDOWN}{F10}{SHIFTUP}i")  ; Kontextmenü > Eigenschaften
   Delay(500)
   ; für USB-Stift u.Ä. hier *2x* {TAB}:
   AW_SendKeys("{CONTROLDOWN}{TAB}{TAB}{CONTROLUP}ps")  ; 3. Reiter > p > s
EndProcedure


AW_ChangeMatchMode(1)  ; Match any substring in the title
CheckDisk("H:")
Oder Du könntest kucken ob es ein externes Freeware-CheckDisk-Tool gibt, das Du mit Deinem Programm zusammen ausliefern darfst und von diesem aus aufrufen kannst.

Gruß, Little John