HERBERS Excel-Forum - das Archiv
Laufwerk per VBA formatieren?
Max

Als Teil eines längeren Prozesses würde ich gern das Formatieren eines USB Drive automatisieren.
Kann ich das per VBA bewerkstelligen oder ist das zu hoch gegriffen?

AW: Laufwerk per VBA formatieren?
Tino

Hallo,
vielleicht reicht es Dir so schon aus, den Dialog mit vorgaben zu starten.
http://www.activevb.de/tipps/vb6tipps/tipp0152.html
Laufwerk als Zahl kannst Du mit ASC("F") -65 z. Bsp. ermitteln.
Für hwnd kannst Du eine 0 einsetzen.
Gruß Tino
AW: Laufwerk per VBA formatieren?
Max

Danke Tino. Scheint alles abzudecken. Mit der Zahl ist klar, aber macht das hwnd irgendeinen Unterschied?
Bzw. meinst du einfach nach dem
drive = 8 (für H:),
hwnd = 0 ,zu setzen?
Me.Hwnd? = 0?
Max

Sry, ich kriegs schlichtweg nicht zum Laufen. Schon im Original kommt das die Verwendung vom Schlüsselwort Me ungültig ist.
AW: Me.Hwnd? = 0?
Tino

Hallo,
versuche es mal so.
Private Declare Function SHFormatDrive Lib "shell32" _
(ByVal hwndOwner As Long, ByVal lngDrive As Long, _
ByVal lngCapacity As Long, ByVal lngFormatType As _
Long) As Long
Const SHFD_CAPACITY_DEFAULT = 0 ' Standard-Kapazität
Const SHFD_FORMAT_QUICK = 0     ' Quickformat, für NT = 1
Const SHFD_FORMAT_FULL = 1      ' Vollständig, für NT = 0
Private Sub Command1_Click()
Dim Result&, Drive&
'Laufwerk A: für C wird 2, D = 3 etc. eingesetzt
Drive = Asc("F") - 65
Result = SHFormatDrive(0, Drive, SHFD_CAPACITY_DEFAULT, SHFD_FORMAT_QUICK)
Select Case Result
Case Is > -1: MsgBox "In Ordnung"
Case -1:  MsgBox ("Fehler")
Case -2:  MsgBox ("Abbruch")
End Select
End Sub
Gruß Tino
AW: Me.Hwnd? = 0?
Max

Vielen Dank. Gut Und einfach. Damit kann ich den Teil des Projektes auf jeden Fall abschließen.
Es muß nicht, aber als Option, kann man noch hinzufügen daß das Formatiern direkt beginnt, man also nicht erst OK klicken muss?
weis ich jetzt auch nicht...
Tino

Hallo,
als Kontrolle würde ich es sowieso nicht wollen, was ist wenn Du mal das falsche Laufwerk nimmst?
Gruß Tino