Mengautomasikan Gelagat Aplikasi dengan Memasukkan/Mengalih Keluar Pemacu USB: Penyelesaian C# dan WMI
Perlu memulakan dan menghentikan aplikasi secara automatik apabila pemacu USB dimasukkan atau dialih keluar? Panduan ini menunjukkan cara untuk mencapainya menggunakan C# dan Instrumentasi Pengurusan Windows (WMI).
Mengesan Perubahan Pemacu USB
Beberapa kaedah wujud untuk mengesan peristiwa pemacu USB dalam C#, termasuk menggunakan WndProc
untuk memintas mesej Windows. Walau bagaimanapun, WMI menawarkan pendekatan yang lebih mudah dan mantap, terutamanya dalam konteks perkhidmatan.
Pelaksanaan WMI: Contoh Praktikal
Coretan kod berikut menggambarkan cara menggunakan WMI untuk memantau acara pemasukan pemacu 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>
Kaedah watcher_EventArrived
akan dicetuskan apabila pemacu USB dimasukkan. Logik yang sama, mengubah suai EventType
dalam pertanyaan (EventType 3 mewakili penyingkiran), boleh digunakan untuk mengesan penyingkiran pemacu USB.
Ringkasan
Gabungan C# dan WMI ini menyediakan kaedah yang boleh dipercayai dan cekap untuk mencipta perkhidmatan Windows yang bertindak balas secara automatik kepada pemasukan dan penyingkiran pemacu USB. Keupayaan ini sangat berharga untuk pelbagai senario aplikasi yang memerlukan gelagat dinamik berdasarkan kehadiran pemacu USB.
Atas ialah kandungan terperinci Bagaimanakah C# dan WMI Boleh Mengautomatikkan Permulaan dan Penutupan Aplikasi Berdasarkan Memasukkan dan Mengalih Keluar Pemacu USB?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!