Как правильно прочитать Device ID?

Вопросы по работе с электронными ключами SenseLock из операционных систем с использованием различных компиляторов

Как правильно прочитать Device ID?

Сообщение Jungle » Ср, 21 мар 2012 20:58

После выполнения S4Enum получается массив структур, в поле bID - Device ID.
При изменении Device ID и сбросе ключа, изменяется это поле структуры, однако при повторном выполнении S4Enum получаются старые значения, пока не переткнуть ключ. Между тем, программа DevTest из комплекта разработчика нормально читает новое значение без перетыкания ключа.

Код: Выделить всё
OpenDir_Info.dwS4OpenInfoSize := SizeOf(S4OPENINFO);
OpenDir_Info.dwShareMode := S4_SHARE_MODE;
Result := ( S4OpenEx(pKey, @OpenDir_Info) = S4_SUCCESS );

...
Код: Выделить всё
var
  p: PSENSE4_CONTEXT;
  dwRet, dwLen: Cardinal;
  dInfo: S4CreateDirInfo;

...
  dwRet := S4VerifyPin(p, PansiChar(pin), 24, S4_DEV_PIN);
  if ( dwRet = S4_SUCCESS ) then
  begin
    // change Device ID
    dwRet := S4Control(p, S4_SET_DEVICE_ID, @dInfo.szAtr[0], l, nil, 0, dwLen);
    if ( dwRet = S4_SUCCESS ) then
      S4Control(p, S4_RESET_DEVICE, nil, 0, nil, 0, dwLen);
  end;
...


Как нужно правильно читать?

P.S. Delphi 7
Jungle
 
Сообщения: 13
Зарегистрирован: Вт, 13 мар 2012 14:14

Вернуться в Использование SenseLock

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron