Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengesan Memasukkan dan Mengalih Keluar Pemacu USB Menggunakan Perkhidmatan Windows C#?

Bagaimanakah Saya Boleh Mengesan Memasukkan dan Mengalih Keluar Pemacu USB Menggunakan Perkhidmatan Windows C#?

Mary-Kate Olsen
Lepaskan: 2025-01-14 08:51:47
asal
993 orang telah melayarinya

How Can I Detect USB Drive Insertion and Removal Using a C# Windows Service?

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan