Возвращаемое значение c # exe с exec - PullRequest
0 голосов
/ 13 декабря 2011

У меня проблема с использованием inno setup. Я устанавливаю обновление с помощью inno, и с помощью update.exe пользователь получает txtfile с номером лицензии. На его устройстве этот номер лицензии читается функцией dll.

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

Если бы я поместил эту проверку в отдельный exe-файл, было бы легко взломать его, заменив exe-файл на тот, который просто ничего не делает (без кода ошибки). Поэтому я хочу разделить проверку на отдельный исполняемый файл (где я проверяю некоторые другие вещи, такие как номер установленной версии и т. Д.) И файл update.exe

В обновлении exe я хочу прочитать txtfile внутри пакета обновлений - это легко. В check.exe я хочу вызвать внутреннюю DLL и получить номер лицензии машины. Я должен вернуть этот номер как INT. C # позволяет мне сделать это.

Но как я могу получить этот номер в innosetup?

Я попытался получить для этого код ошибки (0 = ошибка - неверная версия и т. Д., XXXXXXXXX = номер лицензии машины). Но код ошибки - только 2 символа в inno. Я получаю только 2 символа ...

Сохранение номера в другом файле не будет решением, так как пользователь может взломать его таким образом ... Возможно ли ввести номер в inno, не давая пользователю возможности манипулировать ??

1 Ответ

0 голосов
/ 13 декабря 2011

Если вы переместите код в DLL (либо в COM, либо в простой stdcall DLL), он может использоваться Inno и передавать между ними дополнительные данные, включая полные строки и т. Д.

...