2012-05-25 2 views
5

Хорошо. Хорошо, я знаю, что у этого вопроса есть хорошие шансы быть закрытыми в течение первых 10 минут, но я собираюсь спросить об этом в любом случае, потому что я провел почти полтора дня, пытаясь найти решение. Тем не менее, я не могу понять этого. Об этом мало информации в Интернете, даже на веб-сайте HASP (safenet), хотя у них есть демонстрации.HASP HL ​​рабочая демонстрация необходима для C#

У меня есть USB-ключ HASP HL ​​USB. Я пытаюсь преобразовать их демо-версию и проверить ее, но для жизни я просто не могу заставить ее войти в систему. Он продолжает поднимать Aladdin.HASP.HaspStatus.HaspDotNetDruBroken исключение.

Однако, если я запустил версию их демоверсии, она отлично работает.

Вот версия Csharp моего кода:

Aladdin.HASP; 
HASP myHasp = new HASP(); 
var thestatus = myHasp.Login(vender_code); 
myHasp.Logout; 

Я хотел бы войти в USB HASP и получить его HaspID и настройки в памяти.

Спасибо заранее,

ответ

3

Это может быть, что вы не имея все зависимости для HASP выполнения. Я упаковка с приложением:

библиотеки
hasp_windows_NNNNN.dll (NNNNN = your number) 
hasp_net_windows.dll 
MSVCR71.DLL (added manually) 
msvc runtime 80 

Одно времени выполнения требуется HASP и не сказать вам, какие один, если не поставить его в утилите depends.exe (вы, вероятно, у вас на вашей Visual Studio монтаж).

Чтобы войти (и прочитать некоторые байты):

  byte[] key = new byte[16]; 
      HaspFeature feature = HaspFeature.FromFeature(4); 
      string vendorCode = "your vendor string, get it from your tools"; 
      Hasp hasp = new Hasp(feature); 
      HaspStatus status = hasp.Login(vendorCode); 
      if (HaspStatus.StatusOk != status) 
      { 
       // no license to run 
       return false; 
      } 
      else 
      { 
       // read some memory here 
       HaspFile mem = hasp.GetFile(HaspFileId.ReadOnly); 
       mem.Read(key, 0, 16); 
       status = hasp.Logout(); 
       if (HaspStatus.StatusOk != status) 
       { 
        //handle error 
       } 
      } 

Надеется, что это помогает. Программное обеспечение HASPed работает как очарование. BTW, не смог разместить конверт вокруг приложения .NET без комбинации настроек.

+0

Daniel, Спасибо за ваш ответ, но я все еще не могу заставить его работать. Всякий раз, когда я пытаюсь добавить MSVCR71.dll в список ссылок, компилятор поднимает сообщение «Операция недействительна из-за текущего состояния объекта». Я не знаю, почему. Единственным файлом dll, к которому я могу добавить ссылку, является hasp_net_windows.dll. – ThN

+0

Это неуправляемая dll и, следовательно, не может быть добавлена ​​в качестве ссылки. Просто поместите его в исполняемую папку. Кроме того, используйте файл depend.exe, чтобы найти недостающую зависимую DLL, которая вам может понадобиться. –

+0

Daniel, я смог найти только hasp_net_windows.dll и MSVCR71.dll, а не файл hasp_windows_NNNNN.dll, о котором вы говорите. Нужно ли загружать отсутствующий DLL-файл из Интернета? Те файлы, которые я нашел, находятся в исполняемой папке. Тем не менее, я получаю то же исключение. Я запустил Depends.exe, и он продолжает жаловаться на отсутствие IEShims.dll, даже если он найден в моей системе. – ThN

Смежные вопросы