Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.05.2008, 23:05
shaman shaman вне форума
Новичок
 
Регистрация: 19.07.2007
Сообщения: 65
Репутация: 5
Восклицание Запись, работа с серийным номером CD диска, привязка программы к CD диску

Я хочу привязать свою программу к определённому 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  
Старый 17.05.2008, 23:59
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,105
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Это не серийный номер диска, а номер тома, получаемый им при форматировании (в твоем случае - при записи CD). Т.е. привязку ты сделать, конечно, можешь, но вот угадать номер... наврядли.

Можно определить тип диска с которого запущена программа и, если это не CD, ругаться. А лучше, что бы себе голову не ломать, посмотри в сторону навесных защит, типа ASProtect или EXECriptor. Они интегрируются в программу достаточно серьезно и позволяют оьеспечить неплохую защиту.
Ответить с цитированием
  #3  
Старый 19.05.2008, 10:24
Аватар для Thrasher
Thrasher Thrasher вне форума
Illuminati
 
Регистрация: 06.03.2008
Адрес: Крым, г. Симферополь
Сообщения: 348
Репутация: 8808
По умолчанию

Имхо попробуй сделать такую вещь как пару лоадер-основной файл программы. Шифруй кусочек кода в основном файле, а лоадером расшифровуй при запуске. Для каждого диска создавай уникальную пару.
__________________
Хорошо написанная программа не требует документации
ICQ 9-184-668.
Ответить с цитированием
  #4  
Старый 19.05.2008, 18:52
shaman shaman вне форума
Новичок
 
Регистрация: 19.07.2007
Сообщения: 65
Репутация: 5
По умолчанию

Мне понравилось твоё предложение. Можешь подробнее об этом рассказать или лучше пожалуйся напиши исходник пример твоей задумки.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:13.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025