Domanda

Ciao Voglio fare qualcosa quando una chiavetta di memoria collegato al PC. Ora io uso un timer e controllarla in ogni tick se un memory stick è inserita (utilizzare DriveInfo o con l'esecuzione di query WMI) C'è qualche modello event-driven a disposizione per fare? per esempio io uso un evento nel mio programma che rilancio ogni volta che un memory stick sia collegato al computer?

È stato utile?

Soluzione

Si vuole gestire il WM_DEVICECHANGE messaggio nella WndProc. Quando si maneggiano che, è anche possibile chiamare RegisterDeviceNotification per ottenere la notifica che il bastone viene espulso in modo pulito.

Quando si riceve una WM_DEVICECHANGE, si desidera controllare il wParam - DBT_DEVICEARRIVAL (0x800) è quello che stai cercando per

.

In C ++, si dovrebbe avere problemi con il WndProc. In C #, ti consigliamo di eseguire l'override del modulo principale WndProc metodo e controllo m.Msg == 0x219 e m.WParam == 0x800. Si noti che non tutti questi sarà una memory stick -. Ma è possibile utilizzare questo per notificare per verificare l'inserimento dell'unità piuttosto che un timer

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top