зарегистрироваться на событие в Windows - PullRequest
1 голос
/ 05 октября 2010

Привет, я хочу сделать что-нибудь, когда карта памяти подключена к ПК.Теперь я использую таймер и проверяю его в каждом тике, подключена ли какая-либо карта памяти (используйте DriveInfo или с запросом WMI). Есть ли какая-либо модель, управляемая событиями, доступная?например, я использую событие в моей программе, которое возникает, когда карта памяти подключена к компьютеру?

1 Ответ

1 голос
/ 05 октября 2010

Вы хотите обработать сообщение WM_DEVICECHANGE в вашем wndproc.Когда вы справляетесь с этим, вы также можете позвонить по номеру RegisterDeviceNotification, чтобы получить уведомление о том, что флешка чисто выталкивается.

Когда вы получаете WM_DEVICECHANGE, вы хотите проверить, wParam - DBT_DEVICEARRIVAL (0x800) - это то, что вы ищете.

В C ++ у вас не должно быть проблем сwndproc.В c # вы захотите переопределить метод WndProc вашей основной формы и проверить m.Msg == 0x219 и m.WParam == 0x800.Обратите внимание, что не ВСЕ из них будут картами памяти, но вы можете использовать это, чтобы уведомить вас о проверке вставки диска, а не таймер.

...