在 C# Windows 服務中監控 USB 隨身碟活動
本文詳細介紹如何建立可靠偵測 USB 磁碟機插入和移除事件的 C# Windows 服務。這對於設計為在驅動器連接時自動啟動並在驅動器斷開連接時自動關閉的應用程式至關重要。
實作 USB 事件偵測
追蹤這些事件最有效的方法是使用 Windows Management Instrumentation (WMI)。 WMI 提供了一個用於與系統資源互動的強大接口,使其非常適合此任務。
基於 WMI 的解決方案
以下是一個簡化的範例,示範了 WMI 應用程式偵測 USB 隨身碟插入和移除的情況:
<code class="language-csharp">using System.Management; // Initialize WMI event watcher ManagementEventWatcher watcher = new ManagementEventWatcher(); // Define the WQL query for volume change events (EventType = 2 signifies insertion/removal) WqlEventQuery query = new WqlEventQuery("SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 2"); // Assign the query to the watcher watcher.Query = query; // Specify the event handler watcher.EventArrived += watcher_EventArrived; // Start monitoring watcher.Start(); // Wait for events watcher.WaitForNextEvent(); // Event handler to process drive insertion/removal events private void watcher_EventArrived(object sender, EventArrivedEventArgs e) { // Process the event data (e.NewEvent) to determine which drive was affected and whether it was inserted or removed. // ... your code to handle the event ... }</code>
此程式碼設定一個 WMI 事件觀察程式來偵聽 Win32_VolumeChangeEvent
事件,其中 EventType
為 2。插入或移除驅動器時會觸發 watcher_EventArrived
事件處理程序,允許您處理事件詳細資訊(可用)在e.NewEvent
)。 您需要在 watcher_EventArrived
方法中新增邏輯以確定特定磁碟機和事件類型(插入或刪除)。
以上是如何使用 C# Windows 服務偵測 USB 隨身碟的插入與拔出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!