Статус: Активный участник
Группы: Участники
Зарегистрирован: 18.03.2008(UTC) Сообщений: 60 Откуда: Москва
|
Добрый день!
Как программно получить список считывателей, установленных на компе?
Т.е. клиентское место должно проверить, установлен ли у клиента считыватель "Реестр", и, если нет, предложить установить.
Если только смотреть системный реестр, то какая ветка?
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 06.05.2008(UTC) Сообщений: 7 Откуда: Kiev
|
Есть такая штука USBView (there is code on internet).
if you want to capture usb event, you can use WM_DEVICECHANGE event.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,377 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 32 раз Поблагодарили: 706 раз в 614 постах
|
Код:CryptGetProvParam PP_ENUMREADERS
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 18.03.2008(UTC) Сообщений: 60 Откуда: Москва
|
maxdm написал:Код:CryptGetProvParam PP_ENUMREADERS
Спасибо! Похоже, это только у Критопро. У MS нет такого в MSDN Поиском нашел, что PP_ENUMREADERS = 114 Благодарен!
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 18.03.2008(UTC) Сообщений: 60 Откуда: Москва
|
Так, получилось. Но возможно ли документированно узнать, что за структура возвращается Я понял, что
Имя строка+<0> Системное имя строка+<0> Флаг И еще Название криптопровайдера
Но надо четкое представление.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,377 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 32 раз Поблагодарили: 706 раз в 614 постах
|
Код://----------------------------------------------------------------------------
/*! Вывод информации о считывателе.
*/
void PrintReaderInfo(BYTE *pbData, DWORD dwDataLen)
{
printf(" Len NickName Name Byte\n");
printf("__________________________________________________________________________\n");
size_t cData = strlen((char*)pbData);
printf(" 0x%04x %-18s %-38s 0x%02x\n",
(unsigned)dwDataLen,
// вторая строка с '\0'
(char*)pbData + cData + 1,
// первая строка с '\0'
(char*)pbData,
// после них - байт
*(pbData + cData + 1 + strlen((char*)pbData + cData + 1) + 1));
}
Отредактировано пользователем 21 мая 2008 г. 21:27:57(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 18.03.2008(UTC) Сообщений: 60 Откуда: Москва
|
Спасибо
И последний вопрос - о чем говорит последнее поле - Byte?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.12.2007(UTC) Сообщений: 390 Откуда: КриптоПро Поблагодарили: 2 раз в 2 постах
|
Битовые флаги считывателя. В следующей версии значение данного поля может быть изменено. В данной версии биты в порядке от младшего к старшему: - 1, если считыватель поддерживает длинные имена (имя контейнера совпадает с именем папки); - 1, если носитель является отчуждаемым; - 1, если носитель имеет уникальное имя; - 1, если на носителе поддерживаются папки (может хранится несколько контейнеров) - 1, если носитель поддерживает корневые файлы (контейнер может хранится в корне) |
С уважением, Александр. |
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close