Nadgil Опубликовано 2 августа, 2004 Жалоба Поделиться Опубликовано 2 августа, 2004 Привет всем! Возможно ли в Delphi написать такой код, чтобы после запуска на машине программа взяла определённый параметр из системы, то биш переменную и прописала её в будущей программе, после чего скомпилила бы её? По русски: например есть программа установки. при её запуске она например берет из системы серийный номер жесткого диска и прописвает его в программе, которую потом скомпилирует и установит. Для чего: чтобы программа работала только на данном компьютере. После чего программа удалит инсталятор - ну эо не проблема. Можно ли такое осуществить? Может кто уже ломал себе голову по этому поводу? Поделитесь рассуждениями. Ссылка на комментарий Поделиться на другие сайты Поделиться
Scooby Опубликовано 2 августа, 2004 Жалоба Поделиться Опубликовано 2 августа, 2004 Конечно это возможно. (правда насчёт компиляции не уверен, я бы использовал файл настроек). Подобные фишки, вроде имени компьютера, серийного номера той или иной его части прописаны в реестре. Delphi работает с реестром. Многие программы достают из реестра информацию. Например эти команды достают имя пользователя и имя компа из реестра. << var R:Tregistry; begin R:=TRegistry.Create; R.RootKey:=HKEY_LOCAL_MACHINE; R.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion', False); UserName.Caption:=r.readstring('RegisteredOwner'); Organization.Caption:=r.readstring('RegisteredOrganization'); r.Free; end; >> Но для того, чтобы вытащить номер серийника, надо круто знать команды реестра и Delphi. Легче будет реализовать генерацию серийного номера и т. д. Ссылка на комментарий Поделиться на другие сайты Поделиться
dmc Опубликовано 3 августа, 2004 Жалоба Поделиться Опубликовано 3 августа, 2004 которую потом скомпилирует и установит Такое реально провернуть с asm и паскалем, у них небольшие компиляторы, а для компилятора дельфи нужно таскать уйму всяких библиотек. Лучше написать программу, генератора key файла, заточенного под определенный компьютер. Ссылка на комментарий Поделиться на другие сайты Поделиться
mmap Опубликовано 3 августа, 2004 Жалоба Поделиться Опубликовано 3 августа, 2004 Во первых, почему ты решил, что инсталлятор не может быть скопирован куда-нибудь для повторного использования? Или программа будет шарить во всех местах? В-третьих если не хочешь использовать реестр, то можно дописывать в конец *.exe -шника программы. Но самый распространённый способ - тот, что предложил dmc. Ссылка на комментарий Поделиться на другие сайты Поделиться
Nadgil Опубликовано 4 августа, 2004 Автор Жалоба Поделиться Опубликовано 4 августа, 2004 На счёт того чтобы вытащить серийный номер диска из реестра это не проблема, даже код уже есть. На счёт того, что инсталятор можно скопировать - в принципе можно, но мало кто это делает, сначало заупускают, а потом уже куда-то его копируют. Добавлено : [mergetime]1091627611[/mergetime] а как можно дописать в конце экзешника? можно поподробнее? Ссылка на комментарий Поделиться на другие сайты Поделиться
mmap Опубликовано 4 августа, 2004 Жалоба Поделиться Опубликовано 4 августа, 2004 Да так. Просто открываешь exe-шник для записи и чтения, переходишь в его конец и пишешь что угодно. На запуск его это влиять никак не будет. Для чтения - открываешь exe для чтения, прееходишь по смещению начальный_размер_exe от начала и читаешь... Начальный размер можно узнать после компиляции. При смене одного числа на другое того же типа (константы) размер скомпилированного exe-шника не меняется. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти