vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: ComboBox für vorhandene Laufwerke 
Autor: Manfred X
Datum: 25.05.19 12:45

Hallo!

Die alte Instr-Funktion liefert 0 wenn der gesuchte String nicht gefunden wird,
sonst einen Wert > 0.

Ich würde die Management-Konsole nutzen, etwa so:
Imports System
Imports System.IO
Imports System.Management 'Verweis auf Assembly System.Management.DLL ist 
' erforderlich !!!! 
 
Public Class frmDrives2
 
    Dim WithEvents watcher As New ManagementEventWatcher
 
    Dim lstdrives As New List(Of String)
    Dim bsDrives As New BindingSource With {.DataSource = lstdrives}
    Dim WithEvents cboDrives As New ComboBox With
        {.Parent = Me, .Width = 200, .Left = 5, .Top = 5,
        .DropDownStyle = ComboBoxStyle.DropDown, .DataSource = bsDrives}
 
    Dim SelectedDrive As String = ""
 
 
    Public Enum USBAction
        inserted = 2
        removed = 3
    End Enum
 
 
    Private Sub frmDrives2_Load(sender As Object, e As EventArgs) Handles _
      MyBase.Load
 
        FillDrivelist()
 
        Dim query As WqlEventQuery = New
        WqlEventQuery("SELECT * FROM Win32_VolumeChangeEvent WHERE EventType =" & _
          "2 or EventType = 3")
 
        watcher.Query = query
        watcher.Start()
 
    End Sub
 
 
    Private Sub watcher_EventArrived(sender As Object, 
        e As EventArrivedEventArgs) Handles watcher.EventArrived
 
        Dim et As Short = CShort(e.NewEvent.Properties("EventType").Value)
        Dim driveName As String = e.NewEvent.Properties( _
          "DriveName").Value.ToString
        Dim eventName As String = [Enum].GetName(GetType(USBAction), et)
 
        If et = USBAction.inserted Then
            For Each drv As DriveInfo In IO.DriveInfo.GetDrives
                If drv.Name.StartsWith(driveName) Then
                    lstdrives.Add(driveName & "  " & drv.DriveType.ToString)
                End If
            Next drv
            lstdrives.Sort()
        Else
            For i As Integer = lstdrives.Count - 1 To 0 Step -1
                If lstdrives(i).StartsWith(driveName) Then lstdrives.RemoveAt(i)
            Next i
        End If
 
        cboDrives.Invoke(New MethodInvoker(AddressOf SetDriveBinding))
    End Sub
 
 
    Private Sub SetDriveBinding()
        bsDrives.ResetBindings(False)
        SetSelectedDrive()
    End Sub
 
 
    Private Sub FillDrivelist()
        lstdrives.Clear()
 
        For Each drv As DriveInfo In IO.DriveInfo.GetDrives
            lstdrives.Add(drv.Name & " " & drv.DriveType.ToString)
        Next drv
        lstdrives.Sort()
        bsDrives.ResetBindings(False)
    End Sub
 
 
    Private Sub SetSelectedDrive()
        Dim found As Boolean
        If String.IsNullOrEmpty(SelectedDrive) Then Exit Sub
        If lstdrives.Count = 0 Then Exit Sub
 
        For i As Integer = 0 To lstdrives.Count - 1
            If lstdrives(i).StartsWith(SelectedDrive) Then
                cboDrives.SelectedIndex = i : found = True
            End If
        Next i
        If Not found Then cboDrives.SelectedIndex = 0
    End Sub
 
 
    Private Sub cboDrives_SelectedIndexChanged(sender As Object,
                e As EventArgs) Handles cboDrives.SelectedIndexChanged
        If cboDrives.SelectedItem Is Nothing Then
            SelectedDrive = ""
        Else
            SelectedDrive = cboDrives.SelectedItem.ToString
        End If
    End Sub
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
ComboBox für vorhandene Laufwerke1.115Dikn21.05.19 17:18
Re: ComboBox für vorhandene Laufwerke708Manfred X21.05.19 17:31
Re: ComboBox für vorhandene Laufwerke564Dikn23.05.19 09:23
Re: ComboBox für vorhandene Laufwerke562Dikn23.05.19 09:24
Re: ComboBox für vorhandene Laufwerke611Manfred X23.05.19 13:38
Re: ComboBox für vorhandene Laufwerke571Dikn25.05.19 09:59
Re: ComboBox für vorhandene Laufwerke603Manfred X25.05.19 12:45
Re: ComboBox für vorhandene Laufwerke556Dikn27.05.19 09:20
Re: ComboBox für vorhandene Laufwerke581Manfred X27.05.19 12:49
Re: ComboBox für vorhandene Laufwerke537Dikn27.05.19 17:43
Re: ComboBox für vorhandene Laufwerke579Manfred X27.05.19 18:21

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel