.net - Hvordan kan jeg registrere, når et SD-kort er tilsluttet?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg 'm skrive et pc-program i C ++, der har brug for at opdage, når en bruger opretter forbindelse et SD-kort til hans/hendes computer. Jeg ved, hvordan man kan opdage, når kortlæseren er tilsluttet, men jeg ved ikke, hvordan man kan opdage, når de enkelte kort er tilsluttet/fjernet.


Har Windows en IO-grænseflade til at registrere ankomst/fjernelse af SD-kort?


[[Update]] den WM\_DEVICECHANGE teknik, der blev foreslået værker kun til påvisning af, når en SD-kortlæser er sat i. Det betyder ikke registrere, når de enkelte kort er indsat i kortlæseren.

Bedste reference


Tror, det er hvad du har brug for:


http://www.codeproject.com/KB/dotnet/devicevolumemonitor.aspx[1]

Andre referencer 1


kontrollere meddelelser fra WM\_DEVICECHANGE her er et eksempel [2] [3]

Andre referencer 2


WM\_DEVICECHANGE kan være dit svar.
Her er et eksempel med cd-rom. [4]

Andre referencer 3


Kig på Bærbare enheder API i Windows, det har funktionalitet, der gør det muligt at knytte det til et SD-kortlæser (det 's kendt som en lagerenhed) og få begivenheder, når et kort er indsat eller fjernet.


Det har kun to (muligvis store) ulemper:



  • Det kræver Windows Vista eller senere

  • Det har kun en COM API, så hvis du ønsker at bruge den fra et .NET program, du enten har en masse Interop foran dig, eller du er nødt til at skrive en wrapper i C ++ eller C ++/CLI