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.148 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. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats Mai 2024 Hermann Röttger Wochentage eines Datumsbereichs ermitteln Wochentage eines Datumsbereichs ermitteln, optional mit Feiertagsberechnung sevWizard für VB5/6 Professionelle Assistenten im Handumdrehen Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) |
||||||||||||||||
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. |