узнать ID ключа

Доброго времени суток, уважаемые знатоки! Подскажите: через командную строку (cmd) можно как-то получить ID вставленного в пк ключа?

Re: узнать ID ключа

Здравствуйте!
Штатными средствами Windows через командную строку нельзя получить ID, вставленного в пк ключа.
Уточните, пожалуйста, для каких целей Вам потребовался именно такой функционал?

Re: узнать ID ключа

Хотелось сделать примерно следующее:
Пользователь втыкает ключ, в системе подцепляется сетевой диск. По идентификатору ключа выбирается нужная папка и данные доступа, которые следует подключить.

п.с.: имеется куча ключей и комплект разработчика

Re: узнать ID ключа

Вы задали аналогичный вопрос по почте, Вам ответили.

Re: узнать ID ключа

Кстати, такая консольная утилита была написана нами самостоятельно. Когда я ее делал, то удивлялся, почему не сделать такую штатную утилиту по поиску ключей по заданным условиям. В командную строку передаются условия поиска ключей, а на выходе утилита выводит найденные ID. Если существует некая билд-машина, к которой подключены разные ключи, а для работы нужно выбрать какой-то конкретный по текущим настройкам конкретного билда, то без такой утилиты не обойтись.

Re: узнать ID ключа

IMT пишет:

Кстати, такая консольная утилита была написана нами самостоятельно. Когда я ее делал, то удивлялся, почему не сделать такую штатную утилиту по поиску ключей по заданным условиям. В командную строку передаются условия поиска ключей, а на выходе утилита выводит найденные ID. Если существует некая билд-машина, к которой подключены разные ключи, а для работы нужно выбрать какой-то конкретный по текущим настройкам конкретного билда, то без такой утилиты не обойтись.

если дадите подсказку как реализовать, буду премногоблагодарен

Еще такой момент: как реализовать или где можно найти утилитку, которая при изъятии ключа запустила, скажем, exe-файл.

Re: узнать ID ключа

Fess пишет:

если дадите подсказку как реализовать, буду премногоблагодарен

Возможно тут будет полезна консольная утилита диагностики электронных ключей - chknsk.

Re: узнать ID ключа

Fess пишет:

если дадите подсказку как реализовать, буду премногоблагодарен

proc ReportDongle(const ContainerHandle: HANDLE; const ID: DWORD);
begin
  RCode := GrdSetFindMode(ContainerHandle, GrdFMR_Local,
    GrdFM_ID, 0, ID, 0, 0, 0, 0, 0, GrdFMI_USB);

  GrdFind(ContainerHandle, GrdF_First, @dwID, @GrdFindInfo);

  GrdLogin(ContainerHandle, $FFFFFFFF, GrdLM_PerHandle);

  GrdGetInfo(ContainerHandle, GrdGIL_Model, @Data, SizeOf(Data));

  // Вот тут вывести все, что душе угодно, про этот ключ

  GrdLogout(ContainerHandle, 0);
end;

Main:
GrdStartup(GrdFMR_Local);
GrdCreateHandle;
GrdSetAccessCodes;
dwFlags := 0;  // Найти все
dwType := 0;   // Найти все
dwModel := 0;  // Найти все

Из параметров командной строки составить dwModel;
Из параметров командной строки составить dwType;



          // Поиск ключей
          RCode := GrdSetFindMode(ContainerHandle, GrdFMR_Local,
            dwFlags,
            0, 0, 0, 0, 0,
            dwType,
            dwModel,
            GrdFMI_USB);

          Grd_ErrorHandler(RCode);

          DongleCnt := 0;
          RCode := GrdFind(ContainerHandle, GrdF_First, @dwID, @GrdFindInfo);
          while (RCode = GrdE_OK) and (DongleCnt < 255) do
          begin
            inc(DongleCnt);
            IDs[DongleCnt - 1] := dwID;
            RCode := GrdFind(ContainerHandle, GrdF_Next, @dwID, @GrdFindInfo);
          end;

          // Информация по каждому ключу
          for i := 0 to DongleCnt - 1 do
            ReportDongle(ContainerHandle, IDs(i));
end.

Fess пишет:

Еще такой момент: как реализовать или где можно найти утилитку, которая при изъятии ключа запустила, скажем, exe-файл.

Это уже не сюда. Но такие программы есть. Вспомню, скажу.

Re: узнать ID ключа

IMT, Спасибо!!!!

Антон Тихиенко пишет:
Fess пишет:

если дадите подсказку как реализовать, буду премногоблагодарен

Возможно тут будет полезна консольная утилита диагностики электронных ключей - chknsk.

вот бы еще найти эту библиотеку "GrdAPI.h"

Re: узнать ID ключа

Fess пишет:

вот бы еще найти эту библиотеку "GrdAPI.h"

Искать особо ненужно, находится в составе установленного Guardant SDK, в папке Include (директория "по умолчанию": %Program Files%\Guardant\SDK7\Include).

Re: узнать ID ключа

Fess пишет:

IMT, Спасибо!!!!

Пожалуйста. Да, забыл сказать, что это я дал не код, а сценарий. на каждом шагу проверка кодов возврата функций ОБЯЗАТЕЛЬНА. Все нужно правильно оболочь в try и добавить корректное завершение работы.

Re: узнать ID ключа

Антон Тихиенко пишет:
Fess пишет:

вот бы еще найти эту библиотеку "GrdAPI.h"

Искать особо ненужно, находится в составе установленного Guardant SDK, в папке Include (директория "по умолчанию": %Program Files%\Guardant\SDK7\Include).

благодарю, библиотеку подключил. Вот только при компиляции исходника chknsk.c вылетает ошибка необъявленного идентификатора GrdDT_LoadableCode

Re: узнать ID ключа

Fess пишет:

благодарю, библиотеку подключил. Вот только при компиляции исходника chknsk.c вылетает ошибка необъявленного идентификатора GrdDT_LoadableCode

Убедитесь что к проекту подключен правильный заголовочный файл grdapi.h, такой идентификатор там есть, в чем можно легко убедиться открыв данный файл.

А в целом утилита "chknsk" тут скорее более полезна в качестве примера реализации.

Re: узнать ID ключа

да, действительно отсутствует. Может быть Вы поделитесь ссылкой, где можно скачать? либо выслать на почту?
ну или на крайний случай строку объявления сюда запостить?

Re: узнать ID ключа

Fess пишет:

где можно найти утилитку, которая при изъятии ключа запустила, скажем, exe-файл.

Вспомнил.

Отличительной особенностью USB Safely Remove от других подобных программ является способность запускать любые приложения перед извлечением устройства, а не только после его подключения.

Ссылку не даю, нагуглите.