C# Windows 서비스에서 USB 드라이브 활동 모니터링
이 문서에서는 USB 드라이브 삽입 및 제거 이벤트를 안정적으로 감지하는 C# Windows 서비스를 만드는 방법을 자세히 설명합니다. 이는 드라이브 연결 시 자동으로 실행되고 드라이브 연결 해제 시 닫히도록 설계된 애플리케이션에 매우 중요합니다.
USB 이벤트 감지 구현
이러한 이벤트를 추적하는 가장 효과적인 방법은 WMI(Windows Management Instrumentation)를 사용하는 것입니다. WMI는 시스템 리소스와 상호 작용하기 위한 강력한 인터페이스를 제공하므로 이 작업에 이상적입니다.
WMI 기반 솔루션
다음은 USB 드라이브 삽입 및 제거를 감지하는 WMI 애플리케이션을 보여주는 간단한 예입니다.
<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>
이 코드는 Win32_VolumeChangeEvent
이 2인 EventType
이벤트를 수신하도록 WMI 이벤트 감시자를 설정합니다. 드라이브를 삽입하거나 제거할 때 watcher_EventArrived
이벤트 핸들러가 트리거되어 이벤트 세부 정보를 처리할 수 있습니다(사용 가능). e.NewEvent
에서). 특정 드라이브와 이벤트 유형(삽입 또는 제거)을 결정하려면 watcher_EventArrived
메서드 내에 논리를 추가해야 합니다.
위 내용은 C# Windows 서비스를 사용하여 USB 드라이브 삽입 및 제거를 어떻게 감지할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!