Mit nachfolgender Funktion lässt sich prüfen, ob ein bestimmtes Laufwerk bereit ist (bspw. ein Disketten- oder ZIP-Laufwerk) und optional auch, ob auf den Datenträger geschrieben werden kann. Fügen Sie nachfolgenden Code in ein Modul ein: Option Explicit ' Benötigte API-Deklaration Private Declare Function GetVolumeInformation Lib "kernel32" _ Alias "GetVolumeInformationA" ( _ ByVal lpRootPathName As String, _ ByVal lpVolumeNameBuffer As String, _ ByVal nVolumeNameSize As Long, _ lpVolumeSerialNumber As Long, _ lpMaximumComponentLength As Long, _ lpFileSystemFlags As Long, ByVal _ lpFileSystemNameBuffer As String, _ ByVal nFileSystemNameSize As Long) As Long Private Declare Function SetVolumeLabel Lib "kernel32" _ Alias "SetVolumeLabelA" ( _ ByVal lpRootPathName As String, _ ByVal lpVolumeName As String) As Long Public Function CheckDrive(ByVal sDrive As String, _ Optional ByVal bForeCheckWriteAccess As Boolean = False) As Boolean ' Prüft, ob der Datenträger bereit ist und ' optional, ob darauf geschrieben werden kann Dim bResult As Boolean Dim sVolName As String Dim sTemp As String bResult = False On Error GoTo ErrHandler ' Datenträgerbezeichnung lesen If Len(sDrive) = 1 Then sDrive = sDrive & ":" If Len(sDrive) = 2 Then sDrive = sDrive & "\" sTemp = Space$(255) sVolName = Space$(255) If GetVolumeInformation(sDrive, sVolName, Len(sVolName), _ 0&, 0&, 0&, sTemp, Len(sTemp)) > 0 Then ' Falls kein Fehler auftrat, ist der Datenträger bereit bResult = True ' Falls zusätzlich geprüft werden soll, ob auf ' den Datenträger geschrieben werden kann... If bForeCheckWriteAccess Then If InStr(sVolName, Chr$(0)) > 0 Then sVolName = Left$(sVolName, InStr(sVolName, Chr$(0)) - 1) End If bResult = (SetVolumeLabel(sDrive, sVolName) <> 0) End If End If ErrHandler: CheckDrive = bResult End Function Aufrufbeispiele: ' Prüfen, ob in Laufwerk A: eine Diskette eingelegt ' ist und ob darauf geschrieben werden kann If CheckDrive("A:", True) = False Then MsgBox "Entweder keine Diskette im Laufwerk A: oder " & _ "der Datenträger ist schreibgeschützt!", vbCritical End If ' Prüfen, ob Laufwerk D: bereit If CheckDrive("D:") Then ' ... End If Dieser Tipp wurde bereits 9.127 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
Neu! sevEingabe 3.0 Einfach stark! Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |