Efsey, обрабатывать оконные события можно и в С#, к примеру на заинтересованное
WM_DEVICECHANGE
Код:
using System;
using System.Drawing;
using System.Windows.Forms;
class UsbDetector : Form
{
public static void Main()
{
Application.Run(new UsbDetector());
}
/*UsbDetector()
{
}*/
protected override void WndProc(ref Message msg)
{
if (msg.Msg == 537) //WM_DEVICECHANGE
MessageBox.Show("Device Changed " + msg.WParam + " " + msg.LParam );
base.WndProc(ref msg);
}
}
Но я бы присмотрелся к актуальности срабатывания WM_DEVICECHANGE, есть сообщения
USB : Автоматическое обнаружение съёмных дисков что на события подключение/отключение флешки может не быть реакции.
Хоть тесты не выявили аномалии.
По коду выше пришло два сообщения с соответственными кодами
Device Changed 32772 78763296
Device Changed 7 0