|
| |

VB.NET - Fortgeschrittene| Re: Erkennen, wenn USB-Laufwerk(-Stick) eingesteckt | |  | | Autor: Maywood | | Datum: 05.07.07 12:08 |
| Ja, oder man greift auf die WMI zurück. Hier ein Beispiel für die Konsole:
'
' Erstellt mit SharpDevelop.
' Benutzer: maywood
' Datum: 05.07.2007
' Zeit: 11:43
'
' Sie können diese Vorlage unter Extras > Optionen > Codeerstellung >
' Standardheader ändern.
'
Option Explicit On
Option Strict On
Imports System.Management
Public Class MainClass
Public Shared Function Main() As Integer
Console.SetWindowSize (120, 55 )
Console.SetBufferSize (120, 55)
Dim mc as New MainClass
mc.LogicalDiskEvent
End Function
Public Function LogicalDiskEvent() as Integer
Dim query As New WqlEventQuery( "__InstanceCreationEvent", _
New TimeSpan(0, 0, 1), _
"TargetInstance ISA ""Win32_LogicalDisk""")
Dim watcher As New ManagementEventWatcher
watcher.Query = query
AddHandler watcher.EventArrived, AddressOf HandleEvent
watcher.Start()
Console.WriteLine ("Waiting for an event..")
Console.ReadLine()
watcher.Stop()
Return 0
End Function
Private Function GetPropertyDataCollection(DeviceId as String ) As _
PropertyDataCollection
Dim query as ManagementObjectSearcher = new _
ManagementObjectSearcher("Select * FROM Win32_LogicalDisk " + _
"WHERE DeviceId LIKE '" + DeviceId + "'")
For Each mo As ManagementObject In query.Get()
return mo.Properties
Next
Return Nothing
End Function
Private Sub HandleEvent(ByVal sender As Object, _
ByVal e As EventArrivedEventArgs)
Dim Desc as String = cstr(CType(e.NewEvent("TargetInstance"), _
ManagementBaseObject)("Description"))
Dim DevId as String = cstr(CType(e.NewEvent("TargetInstance"), _
ManagementBaseObject)("DeviceID"))
Dim MediaType as Integer = Cint(CType(e.NewEvent("TargetInstance"), _
ManagementBaseObject)("MediaType"))
If Desc.IndexOf ("Wechseldatenträger") > -1 OrElse MediaType = 2 Then
Console.WriteLine( New String("*"c, 30))
Console.WriteLine( "Ein Wechseldatenträger wurde eingestöpselt! Device: " + _
DevId )
For Each pd As PropertyData In GetPropertyDataCollection(DevId)
Try
Console.WriteLine (pd.Name + ": " + Cstr(CType(e.NewEvent( _
"TargetInstance"), _
ManagementBaseObject)(pd.Name)))
Catch ex as Exception
System.Diagnostics.Debug.WriteLine (ex.tostring())
End Try
Next
Console.WriteLine( new String("*"c, 30))
End If
End Sub
End Class(du musst hierfür ein Verweis auf das Assembly System.Management setzen) |  |
 | 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 |
  |
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats 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 :-) Weitere Infos
|
| |
|
Copyright ©2000-2025 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
|
|