У меня в таких случаях получается, что тратишь много времени для описания всех вариантов, которые могут случиться, а потом оказывается, что эта идея в принципе не нужна ни мне, ни кому. Но, возможно, у Вас не так
весь вопрос в уникальной идентификации объекта (терминала в данном случае)
при запуске терминала - проверить есть ли файл GUID.txt в каталоге FILES, если его нет то сгенерить новый GUID(*) и записать в файл, иначе прочесть из файла. Гонки за файл только аккуратно реализовать надо, с файловыми блокировками и перепроверками
дальше с этим GUID уже лезть в каталог COMMON к файлу $LockAccountNumber.txt или к внешнему ресурсу
Прим.: Генерацию GUID сделать средствами WinAPI, крипто-библиотек или намонстрячить самому. Помниться были предложения, внести GenerateGUID (и родственные) в API терминала.
весь вопрос в уникальной идентификации объекта (терминала в данном случае)
при запуске терминала - проверить есть ли файл GUID.txt в каталоге FILES, если его нет то сгенерить новый GUID(*) и записать в файл, иначе прочесть из файла. Гонки за файл только аккуратно реализовать надо, с файловыми блокировками и перепроверками
дальше с этим GUID уже лезть в каталог COMMON к файлу $LockAccountNumber.txt или к внешнему ресурсу
Прим.: Генерацию GUID сделать средствами WinAPI, крипто-библиотек или намонстрячить самому. Помниться были предложения, внести GenerateGUID (и родственные) в API терминала.
если файл GUID.txt тоже клонировать, то и не будет :-) Значит ещё надо как-то(по дате создания, с чем-то сравнивать, старше каталога Files например) проверять что он клонирован и нужен новый
для не-portable запуска проще, можно использовать часть путевого имени (кусок от TerminalInfoString(TERMINAL_DATA_PATH)) ту самую длинную бесячую цифирь, оно в Roaming и это глобально-уникальный идентификатор вроде как
А файл в папке мы просто так делаем?Туда суём параметры машины и сравниваем
Так вот они одинаковы, в случае клона.
P.S. Если не клон, то проблем вообще никаких и без файлаТак вот они одинаковы, в случае клона.
P.S. Если не клон, то проблем вообще никаких и без файлаПриведи пример под словом клон,отличия всегда будут
Останавливаем виртуалку, копируем её "диск", из этой копии создаём другую виртуалку.
Отличаться будет MAC, но вот даже IP уже далеко не всегда.Останавливаем виртуалку, копируем её "диск", из этой копии создаём другую виртуалку.
Отличаться будет MAC, но вот даже IP уже далеко не всегда.Вот. Тогда вопрос: Как программно получить MAC, и по нему делать идентификацию?
Спасибо!
Что-то вы усложнили
но это есть на практике.
но это есть на практике.
весь вопрос в уникальной идентификации объекта (терминала в данном случае)
при запуске терминала - проверить есть ли файл GUID.txt в каталоге FILES, если его нет то сгенерить новый GUID(*) и записать в файл, иначе прочесть из файла.
Гонки за файл только аккуратно реализовать надо, с файловыми блокировками и перепроверками
дальше с этим GUID уже лезть в каталог COMMON к файлу $LockAccountNumber.txt или к внешнему ресурсу
Прим.: Генерацию GUID сделать средствами WinAPI, крипто-библиотек или намонстрячить самому. Помниться были предложения, внести GenerateGUID (и родственные) в API терминала.
весь вопрос в уникальной идентификации объекта (терминала в данном случае)
при запуске терминала - проверить есть ли файл GUID.txt в каталоге FILES, если его нет то сгенерить новый GUID(*) и записать в файл, иначе прочесть из файла.
Гонки за файл только аккуратно реализовать надо, с файловыми блокировками и перепроверками
дальше с этим GUID уже лезть в каталог COMMON к файлу $LockAccountNumber.txt или к внешнему ресурсу
Прим.: Генерацию GUID сделать средствами WinAPI, крипто-библиотек или намонстрячить самому. Помниться были предложения, внести GenerateGUID (и родственные) в API терминала.
Это сделано, но так-же не работает при клоне.
Это сделано, но так-же не работает при клоне.
если файл GUID.txt тоже клонировать, то и не будет :-) Значит ещё надо как-то(по дате создания, с чем-то сравнивать, старше каталога Files например) проверять что он клонирован и нужен новый
для не-portable запуска проще, можно использовать часть путевого имени (кусок от TerminalInfoString(TERMINAL_DATA_PATH)) ту самую длинную бесячую цифирь, оно в Roaming и это глобально-уникальный идентификатор вроде как
а для /portable придётся конечно извращаться.