![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Я хочу привязать свою программу к определённому CD диску. Тоесть чтобы программа запускалось только с определённого диска. Я знаю что каждый диск имеет свой серийный номер который можно узнать с помощью кода
Uses MMSystem. Код:
procedure TForm1.Button1Click(Sender: TObject); var VolumeSerialNumber : DWORD; MaximumComponentLength : DWORD; FileSystemFlags : DWORD; SerialNumber : string; begin GetVolumeInformation('D:\', nil, 0, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, nil, 0); SerialNumber := IntToHex(HiWord(VolumeSerialNumber), 4) + '-' + IntToHex(LoWord(VolumeSerialNumber), 4); Memo1.Lines.Add(SerialNumber); end; end. Admin: Пользуемся тегами! В общем я хочу чтобы при запуске программа сверялась с серийником диска и если всё правильно запускалась. Проблема в том что при записи диска серийник каждый раз меняется. И я хочу узнать можно как нибудь перед записью диска узнать какой будет серийник после записи или как вообще самому записать определённый серийник на диск. Помогите если знаете. Очень срочно нужно. Последний раз редактировалось Admin, 18.05.2008 в 12:12. |
#2
|
|||
|
|||
![]() Это не серийный номер диска, а номер тома, получаемый им при форматировании (в твоем случае - при записи CD). Т.е. привязку ты сделать, конечно, можешь, но вот угадать номер... наврядли.
Можно определить тип диска с которого запущена программа и, если это не CD, ругаться. А лучше, что бы себе голову не ломать, посмотри в сторону навесных защит, типа ASProtect или EXECriptor. Они интегрируются в программу достаточно серьезно и позволяют оьеспечить неплохую защиту. |
#3
|
||||
|
||||
![]() Имхо попробуй сделать такую вещь как пару лоадер-основной файл программы. Шифруй кусочек кода в основном файле, а лоадером расшифровуй при запуске. Для каждого диска создавай уникальную пару.
Хорошо написанная программа не требует документации ICQ 9-184-668. |
#4
|
|||
|
|||
![]() Мне понравилось твоё предложение. Можешь подробнее об этом рассказать или лучше пожалуйся напиши исходник пример твоей задумки.
|