Avatar billede nubi19 Nybegynder
22. juli 2008 - 20:36 Der er 1 løsning

Detektere når en USB stick fjernes

Som titlen indikerer, mangler jeg noget kode til at detektere når en USB stick fjernes.

Helt konkret har jeg en liste med alle USB stick drevbogstaver, og denne skal opdateres når en stick fjernes.

Jeg opfanger at de indsættes, ved at tjekke for beskeden WM_DEVICECHANGE.
Når den kommer tjekker jeg om wparam er DBT_DEVICEARRIVAL, og hvis den er - om dens struct's devicetype er DBT_DEVTYP_VOLUME.

Ud fra dette kan jeg få unitmask og derved finde drevbogstavet.

MEN hvordan opfanger jeg at den fjernes ? Enten hvor brugeren bare hiver den ud, eller laver en "sikker fjernelse af hardware" ?

Jeg har prøvet at tjekke for DBT_DEVICEREMOVEPENDING, men den fik mit program vidst aldrig, så jeg formoder den enten ikke broadcastes, eller slet ikke sendes.

Jeg vil helst undgå WMI for så vidt det er muligt - er det ikke muligt må jeg naturligvis "nøjes" med det.
Avatar billede nubi19 Nybegynder
25. juli 2008 - 19:48 #1
Ah det var slet ikke så vanskeligt, jeg får et WM_DEVICECHANGE hvor wparam er DBT_DEVICEREMOVECOMPLETE når den fjernes. Og det uanset om man bruger sikker fjernelse, eller bare flår den ud :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester