Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Одна копия программы [D7, WinXP]


Гоша ©   (2006-05-15 14:11:00) 

Мастера, как сделать так чтобы программа работала только на определенном компьютере, то есть если ее скопируют на другой комп, она должна выдать сообщение о не законном копировании или т.п. ??? Спасибо заранее!


TStas   (2006-05-15 19:57:00) [1]

Есть один кривой путь, но рабочий, как с гарантией номер диска получить сервером сценариев и должен на всех компах работать, где злобные админы сервер сценариев не запретили


Desdechado   (2006-05-15 18:29:00) [2]

Recall   (15.05.06 16:50) [11]
нормальные программы имеют инсталлятор
поэтому раскидывать длл он будет одинаково на любой машине


Recall   (2006-05-15 16:50:00) [3]

Раскидай в System32 свои dll файлы без готорых не будет работать и все. Зачем голову морочить.


KilkennyCat   (2006-05-15 16:46:00) [4]

гы... замечательно. одна под нт не работает, другая под 98 глючит, а в остальном, прекрасная маркиза, все хорошо, все хорошо...


Мастер дельфи   (2006-05-15 16:45:00) [5]

Result := '';
 FillChar(Buffer, BufferSize, #0);
 if Win32Platform = VER_PLATFORM_WIN32_NT then
 begin // Windows NT, Windows 2000
   // Get SCSI port handle
   hDevice := CreateFile('\\.\Scsi0:', GENERIC_READ or GENERIC_WRITE,
     FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
   if hDevice = INVALID_HANDLE_VALUE then
     Exit;
   try
     srbControl.HeaderLength := SizeOf(SRB_IO_CONTROL);
     System.Move('SCSIDISK', srbControl.Signature, 8);
     srbControl.Timeout := 2;
     srbControl.Length := DataSize;
     srbControl.ControlCode := IOCTL_SCSI_MINIPORT_IDENTIFY;
     pInData := PSendCmdInParams(PChar(@Buffer) + SizeOf(SRB_IO_CONTROL));
     pOutData := pInData;
     with pInData^ do
     begin


boalse   (2006-05-15 16:39:00) [6]

>мне кажется, что это работать в NT не будет...
Так и есть, не работает.


boalse   (2006-05-15 16:37:00) [7]

Есть. Спасибо Алексею Коншину
http://home.earthlink.net/~akonshin/delphi_ru.htm
Функция глючит на win 98-ой.
Не путать серийный номер диска с серийным номером тома.


MetalFan   (2006-05-15 16:35:00) [8]


>
> function GetBiosNumber: string;
> begin
>  result := string(pchar(ptr($FEC71)));
> end;

мне кажется, что это работать в NT не будет...


Мастер дельфи   (2006-05-15 16:33:00) [9]

Серийный номер Биоса не нужен?

function GetBiosNumber: string;
begin
 result := string(pchar(ptr($FEC71)));
end;


Гоша   (2006-05-15 16:29:00) [10]

Всем спасибо !!! Нет ли у кого нибудь функция получения серийного номера жест.диска ???


KilkennyCat   (2006-05-15 15:30:00) [11]

Запись в реестре.

Все остальные, к железяке привязываемые (за исключением хасп-ключа) - в топку.


boalse   (2006-05-15 15:20:00) [12]

Можно, например, узнать серийный номер винчестера того компа, на котором программа работать должна. При старте получать  номер винчестера и сравнивать его с нужным.


Jeer   (2006-05-15 14:26:00) [13]

Понять чем один компьютер отличатся от другого и какое отличие является критическим.


Наверх

Титульная страница Поиск, карта сайта Написать письмо