首頁 > 後端開發 > C++ > C# 和 WMI 如何根據 USB 驅動器插入和拔出自動啟動和關閉應用程式?

C# 和 WMI 如何根據 USB 驅動器插入和拔出自動啟動和關閉應用程式?

Mary-Kate Olsen
發布: 2025-01-14 08:29:43
原創
119 人瀏覽過

How Can C# and WMI Automate Application Startup and Shutdown Based on USB Drive Insertion and Removal?

透過 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板