C# および Windows サービス: USB ドライブ接続の監視
USB ドライブの挿入と取り外しに基づいてアプリケーションの起動とシャットダウンを自動化することは、分散システムにとって価値があります。 この記事では、C# Windows サービス内でこの機能を実現する効率的な方法について説明します。
C# 実装戦略
堅牢なソリューションは、システム監視とイベント管理のための強力なツールである Windows Management Instrumentation (WMI) を利用します。 WMI では、デバイスの変更に関連するイベントをクエリできます。 簡潔な C# WMI の例:
<code class="language-csharp">using System.Management; ManagementEventWatcher watcher = new ManagementEventWatcher(); WqlEventQuery query = new WqlEventQuery("SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 2"); watcher.EventArrived += new EventArrivedEventHandler(watcher_EventArrived); watcher.Query = query; watcher.Start(); watcher.WaitForNextEvent();</code>
USB の挿入または取り外し時に EventArrived
イベント ハンドラーがトリガーされ、イベントと影響を受けるドライブに関する詳細が提供されます。 この WMI アプローチは、サービス コンテキスト内で WndProc
を使用するよりもはるかに信頼性が高くなります。
以上がC# Windows サービスで USB ドライブの挿入と取り外しを検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。