Народ, научите привязывать к железу, просто тупо интересно как это делается. К винту, процу и т.д. По барабану. Спрашивал на хакере - дельного ничего не посказали. Буду ждать вашей помощи - можно и сорцы еще
Делаешь демо, которое при запуске на компе клиента считывает его уникальный номер. Он отсылает демо тебе. Ты преобразовываешь этот номер и вставляешь проверку в программу. При каждом запуске программы считываешь этот номер снова, преобразовываешь его локально и сравниваешь с уже записанным. Этим уникальным номером может быть любая хня, от серии Биоса до номера процессора )
Это можно понять вполне однозначно, как и сделал я. Тупо объяснил принцип. Если же тебе интересен "код", то надо писать - Хочу чтобы сделали все за меня, а это уже не сюда. П.С. Не думаю, кто-нибудь будет выкладывать методы привязки, которых нет в паблике. Если ты их выложил, то привязка стала чистой формальностью, как в большинстве случаев. Поизучай крякмисы.
Один из вариантов использовать привязку к CD-ROM, функция WinAPI, GetDriveType, возвращаемое значение DRIVE_CDROM - если диск.
Получаем имя компа: Code: function GetCompName: string; var buffer: array[0..255] of char; size: dword; begin size := 256; if GetComputerName(buffer, size) then Result := buffer else Result := '' end; Имя юзверя: Code: function GetUserName: string; var Size : cardinal; PRes : PChar; BRes : boolean; begin Size := MAX_COMPUTERNAME_LENGTH + 1; PRes := StrAlloc(Size); BRes := GetUserName(PRes, Size); if BRes then Result:=StrPas(PRes) else Result:=''; end; Тип проца: Code: function ProcType: string; var lpSystemInfo : TSystemInfo; begin GetSystemInfo(lpSystemInfo); Result:=IntToStr(lpSystemInfo.dwProcessorType); end; Ну и допустим количество памяти: Code: function MemorySize: string; var lpMemoryStatus : TMemoryStatus; begin lpMemoryStatus.dwLength := SizeOf(lpMemoryStatus); GlobalMemoryStatus(lpMemoryStatus); with lpMemoryStatus do begin Result:=Format('%0.0f',[dwTotalPhys div 1024 / 1024])+' Mb'; end; end; Всё это соединяет, шифруем каким-нить своим алго, и передаём себе. У себя же расшифровываем, определяем все железки и генерим другим алго ключег, который сверяется в софтине. Всё элементарно. Так же это просто пример того что можно получать стандартными апи, запусти любой бенчмарк и увидишь как много инфы к которой можно привязаться Так же рекомендую использовать куски ключа при расчётах важных функций в программе, т.е. включать их в алгоритм а не ставить тупую сверку значений, отшибающуюся битхаком B) ps. 0verbreaK, про диск я чёто не понял)) ну есть сидиром в компе и что дальше? он много где есть п.с. тут надо комбинировать инфу с железок а не использовать какой-то один параметр..