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.585 mal aufgerufen.
Anzeige
![]() ![]() ![]() (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 Neu! sevPopUp 2.0 ![]() Dynamische Kontextmenüs! Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... |
||||||||||||||||
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. |