透過 USB 隨身碟插入/移除來實現應用程式行為自動化:C# 和 WMI 解決方案
需要在插入或拔出 USB 隨身碟時自動啟動和停止應用程式? 本指南示範如何使用 C# 和 Windows Management Instrumentation (WMI) 來實現此目的。
偵測 USB 隨身碟變更
有許多在 C# 中偵測 USB 磁碟機事件的方法,包括使用 WndProc
攔截 Windows 訊息。然而,WMI 提供了一種更簡單、更強大的方法,尤其是在服務情境中。
WMI 實作:一個實際範例
以下程式碼片段說明如何使用 WMI 監控 USB 隨身碟插入事件:
<code class="language-csharp">using System.Management; // Create a WMI event watcher ManagementEventWatcher watcher = new ManagementEventWatcher(); // Define the WQL query to monitor volume change events (EventType 2 indicates insertion) WqlEventQuery query = new WqlEventQuery("SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 2"); // Assign the event handler watcher.EventArrived += watcher_EventArrived; // Set the query for the watcher watcher.Query = query; // Start the watcher watcher.Start(); // Wait for the next event (this can be adapted for continuous monitoring) watcher.WaitForNextEvent(); private void watcher_EventArrived(object sender, EventArrivedEventArgs e) { // Handle USB drive insertion event here }</code>
插入 USB 隨身碟時將觸發 watcher_EventArrived
方法。 類似的邏輯,修改查詢中的EventType
(EventType 3代表移除),可用於偵測USB磁碟機移除。
總結
C# 和 WMI 的這種組合提供了一種可靠且高效的方法來建立自動回應 USB 隨身碟插入和移除的 Windows 服務。此功能對於需要基於 USB 驅動器存在的動態行為的各種應用場景非常有價值。
以上是C# 和 WMI 如何根據 USB 驅動器插入和拔出自動啟動和關閉應用程式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!