Как я могу определить, подключена ли SD-карта? - PullRequest
5 голосов
/ 25 февраля 2009

Я пишу приложение для ПК на C ++, которое должно определять, когда пользователь подключает SD-карту к своему компьютеру. Я знаю, как определить, когда подключено устройство чтения карт, но я не знаю, как определить, когда отдельные карты подключены / удалены.

Есть ли в Windows интерфейс ввода-вывода для обнаружения прибытия / удаления SD-карт?

[Обновить] предложенный метод WM_DEVICECHANGE работает только для обнаружения, когда устройство чтения SD-карт подключено. Он не определяет, когда отдельные карты вставляются в устройство чтения карт.

Ответы [ 4 ]

2 голосов
/ 25 февраля 2009

Подумайте, это то, что вам нужно:

http://www.codeproject.com/KB/dotnet/devicevolumemonitor.aspx

1 голос
/ 25 февраля 2009

проверьте сообщения от WM_DEVICECHANGE вот пример

1 голос
/ 25 февраля 2009

WM_DEVICECHANGE может быть вашим ответом. Здесь - пример с CDROM.

0 голосов
/ 01 апреля 2009

Посмотрите на API переносных устройств Windows, у него есть функциональность, которая позволяет подключать его к устройству чтения SD (оно называется устройством хранения) и получать события, когда карта вставлена ​​или извлечена.

У него только два (возможно, основных) недостатка:

  • Требуется Windows Vista или более поздняя версия
  • Он имеет только COM API, поэтому, если вы хотите использовать его из программы .NET, у вас впереди много взаимодействий или вы должны написать оболочку на C ++ или C ++ / CLI
...