Das DriveBox-Steuerelement eignet sich hervorragend, um dem Anwender die Möglichkeit zu geben, für eine bestimmte Aktion ein Ziel-Laufwerk auszuwählen. Die DriveBox enthält von Haus aus immer alle verfügbaren Laufwerke, angefangen von Disketten-Laufwerken über Festplatten, bis hin zu verbundenen Netz-Laufwerken. Was aber, wenn der Anwender nur einen ganz bestimmten Laufwerkstyp auswählen darf? Zum Beispiel nur eines der installierten CD-Laufwerke. Hmmm.. man könnte ja nach der Auswahl den Laufwerkstyp abfragen und dann ggf. eine Warnmeldung ausgeben. Eleganter wäre es aber sicherlich, wenn die DriveBox in diesem Fall sofort nur die vorhandenen CD-Laufwerke zur Auswahl bieten würde. Und genau das erreichen Sie mit unserem heutigen Tipp! Erstellen Sie ein neues Modul und fügen nachfolgenden Code ein: ' die benötigten API-Deklarationen Private Declare Function SendMessage Lib "user32" _ Alias "SendMessageA" ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ lParam As Any) As Long Private Const CB_DELETESTRING = &H144 Private Declare Function GetDriveType Lib "kernel32" _ Alias "GetDriveTypeA" ( _ ByVal nDrive As String) As Long Private Const DRIVE_UNKNOWN = 1 Private Const DRIVE_REMOVABLE = 2 Private Const DRIVE_FIXED = 3 Private Const DRIVE_REMOTE = 4 Private Const DRIVE_CDROM = 5 Private Const DRIVE_RAMDISK = 6 ' nur bestimmte Laufwerkstypen in der ' DriveBox anzeigen Public Sub DriveShow(oDrive As DriveListBox, _ bShowRemovable As Boolean, _ bShowCDDrive As Boolean, _ bShowFixed As Boolean, _ bShowRemote As Boolean, _ bShowRamDrive As Boolean, _ bShowUnknownType As Boolean) Dim i As Integer Dim lIndex As Long Dim lDriveType As Long Dim bRemove As Boolean With oDrive lIndex = 0 For i = 0 To .ListCount - 1 ' Laufwerkstyp ermitteln lDriveType = GetDriveType(Left$(.List(lIndex), 2)) Select Case lDriveType Case DRIVE_UNKNOWN ' unbekannter Laufwerkstyp bRemove = Not bShowUnknownType Case DRIVE_REMOVABLE ' Wechseldatentäger (Diskette/ZIP) bRemove = Not bShowRemovable Case DRIVE_FIXED ' Festplatte bRemove = Not bShowFixed Case DRIVE_REMOTE ' Netzlaufwerk bRemove = Not bShowRemote Case DRIVE_RAMDISK ' RAM-Disk bRemove = Not bShowRamDrive Case DRIVE_CDROM ' CD-ROM / Brenner bRemove = Not bShowCDDrive End Select If bRemove Then ' Laufwerk entfernen SendMessage .hwnd, CB_DELETESTRING, lIndex, 0& Else lIndex = lIndex + 1 End If Next i End With End Sub Beispiel nur CDROM-Laufwerke anzeigen Private Sub Form_Load() ' nur CDROM-Laufwerke DriveShow Drive1, False, True, False, False, False, False End Sub nur Festplatten und Netz-Laufwerke Private Sub Form_Load() ' nur Festplatten und Netz-Laufwerke DriveShow Drive1, False, False, True, True, False, False End Sub Dieser Tipp wurde bereits 16.058 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. |
sevZIP40 Pro DLL Zippen und Unzippen wie die Profis! Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. 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. |