Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengesan Memasukkan dan Mengalih Keluar Pemacu USB Menggunakan Perkhidmatan Windows C#?
Memantau Aktiviti Pemacu USB dalam Perkhidmatan Windows C#
Artikel ini memperincikan cara membuat perkhidmatan Windows C# yang mengesan peristiwa pemasukan dan penyingkiran pemacu USB dengan pasti. Ini penting untuk aplikasi yang direka untuk dilancarkan secara automatik semasa sambungan pemacu dan ditutup apabila pemacu diputuskan sambungan.
Melaksanakan Pengesanan Acara USB
Kaedah paling berkesan untuk menjejaki peristiwa ini ialah menggunakan Instrumen Pengurusan Windows (WMI). WMI menyediakan antara muka yang teguh untuk berinteraksi dengan sumber sistem, menjadikannya sesuai untuk tugasan ini.
Penyelesaian berasaskan WMI
Di bawah ialah contoh diperkemas yang menunjukkan aplikasi WMI untuk mengesan pemasukan dan penyingkiran pemacu 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>
Kod ini menyediakan pemerhati acara WMI untuk mendengar acara Win32_VolumeChangeEvent
dengan EventType
ialah 2. Pengendali acara watcher_EventArrived
dicetuskan apabila pemacu dimasukkan atau dialih keluar, membolehkan anda memproses butiran acara (tersedia dalam e.NewEvent
). Anda perlu menambah logik anda dalam kaedah watcher_EventArrived
untuk menentukan pemacu khusus dan jenis acara (sisipan atau pengalihan keluar).
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Memasukkan dan Mengalih Keluar Pemacu USB Menggunakan Perkhidmatan Windows C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!