Created
December 15, 2023 11:14
-
-
Save alexandersiemert/3a1157f1514c31b6fa8729b99f65483a to your computer and use it in GitHub Desktop.
USB Device change management
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Management; | |
using System.Windows; | |
namespace USBDeviceDetection | |
{ | |
public partial class MainWindow : Window | |
{ | |
private ManagementEventWatcher watcher; | |
public MainWindow() | |
{ | |
InitializeComponent(); | |
// Erstellen Sie eine Abfrage, um Geräteanfügungs- und -entfernungsereignisse zu überwachen | |
WqlEventQuery query = new WqlEventQuery("SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 2 or EventType = 3"); | |
// Erstellen Sie den EventWatcher und registrieren Sie den EventHandler | |
watcher = new ManagementEventWatcher(query); | |
watcher.EventArrived += DeviceChangedEvent; | |
// Starten Sie die Überwachung | |
watcher.Start(); | |
} | |
private void DeviceChangedEvent(object sender, EventArrivedEventArgs e) | |
{ | |
// Hier können Sie den Code ausführen, wenn ein USB-Gerät angeschlossen oder entfernt wird | |
// Zum Beispiel eine Benachrichtigung anzeigen, eine Aktion ausführen, usw. | |
// Sie können auf Informationen über das geänderte Gerät über e.NewEvent zugreifen | |
ManagementBaseObject obj = e.NewEvent; | |
string eventType = obj["EventType"].ToString(); | |
if (eventType == "2") | |
{ | |
// Gerät wurde angeschlossen | |
MessageBox.Show("USB-Gerät wurde angeschlossen."); | |
} | |
else if (eventType == "3") | |
{ | |
// Gerät wurde entfernt | |
MessageBox.Show("USB-Gerät wurde entfernt."); | |
} | |
} | |
private void Window_Closed(object sender, EventArgs e) | |
{ | |
// Beenden Sie die Überwachung, wenn das Fenster geschlossen wird | |
if (watcher != null) | |
{ | |
watcher.Stop(); | |
watcher.Dispose(); | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment