Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.20;
Скачать: CL | DM;

Вниз

Как уникально идентифицировать компьютер?   Найти похожие ветки 

 
nester ©   (2003-10-07 22:21) [0]

Как уникально идентифицировать компьютер? В общем то проблемма такая, что нужно присвоить каждому компу какойнибудь то ли номер то ли уникальную строку, так чтобы он был уникальным, причем при его присваивании изначально не знаешь все остальные номера? В голову прихочит может брать номер процессора? или номер внита? или может винда как-то присваивает уникально номер каждому компу?
В общем интересует участок кода, который как-то выдерет с компа его "уникальный" номер.


 
Эдуард   (2003-10-07 22:25) [1]

По железу.
L(сериал мамки, биоса, видюхи, винта, МАК сетевой, и т.д.),
где L - некоторый оператор, напр. XOR;

Как определить сериалы - ищи в ФАКах, и форумах.


 
nester ©   (2003-10-07 23:02) [2]

Дык вот в форуме и спрашиваю, не может ли кто привести участок кода?


 
wl ©   (2003-10-07 23:08) [3]

"Будь проще и у тебе потянутся..."
используй такую уникальную штуку как GUID (CSLID et.cetera)
правда это будет работать только в том случае, если нужен просто уникальный абстрактный номер, не привязанный к железу компа, которое может к тому же в любой момент измениться(сетевая сгорела и т.д.)
лучше бы Вы задали вопрос поконкретнее в том смысле, как именно будут получаться номера в серверную программу, and so on
у процессоров нету номера, уже давно убрали имхо в связи со связанным с этим скандалом...
гуид по моему самая тема


 
Soi ©   (2003-10-08 06:25) [4]

Можно вот так, у меня это пашет на работе на все 100%
_____________________________________________________


procedure TForm1.FormActivate(Sender: TObject);
var
VolumeSerialNumber : DWORD;
MaximumComponentLength : DWORD;
FileSystemFlags : DWORD;
SerialNumber : string;
begin
lmdbutton6.Enabled:=false;
//Определение серийного номера у винта
GetVolumeInformation("C:\",nil,0,@VolumeSerialNumber,MaximumComponentLength,FileSystemFlags,nil,0);
SerialNumber := IntToHex(HiWord(VolumeSerialNumber), 4) + "-" + IntToHex(LoWord(VolumeSerialNumber), 4);
//Защита программы от запуска на других компах
//if (serialnumber<>"CC5D-42A8") and (getuserfromwindows<>"Marinka") and (getcomputernetname<>"mario") and (getntdomainname<>"aud11") then timer1.Enabled:=true;
end;

Функции приведены ниже

//Определение имени домена
function GetNTDomainName: string;
var
hReg: TRegistry;
begin
hReg := TRegistry.Create;
hReg.RootKey := HKEY_LOCAL_MACHINE;
hReg.OpenKey("SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", false);
Result := hReg.ReadString( "DefaultDomainName" );
hReg.CloseKey;
hReg.Destroy;
end;
//Конец функции

//Вычисление имени компьютера
function GetComputerNetName: string;
var
buffer: array[0..255] of char;
size: dword;
begin
size := 256;
if GetComputerName(buffer, size) then
Result := buffer
else
Result := ""
end;
//Конец функции

//Вычисление имени пользователя
Function GetUserFromWindows: string;
Var
UserName : string;
UserNameLen : Dword;
Begin
UserNameLen := 255;
SetLength(userName, UserNameLen);
If GetUserName(PChar(UserName), UserNameLen) Then
Result := Copy(UserName,1,UserNameLen - 1)
Else
Result := "Unknown";
End;
//Конец функций


 
nester ©   (2003-10-08 08:33) [5]

Спасибо, как раз воспользуюсь номером винта.


 
Stas ©   (2003-10-08 09:03) [6]

Soi © (08.10.03 06:25) [4]
Класс !


 
Vinter   (2003-10-08 12:35) [7]

Винт может завалиться, лучше уж MAC



Страницы: 1 вся ветка

Текущий архив: 2003.10.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
1-65500
Duckslayer
2003-10-07 02:30
2003.10.20
Чтение файлов


1-65504
qwe
2003-10-08 15:04
2003.10.20
Как в программе добавить пункт в главное меню


14-65637
Verg
2003-09-30 16:00
2003.10.20
Эх. День получки.... Плакать или смеяться?


9-65302
DNT
2003-02-21 02:01
2003.10.20
Помогите научить машину ездить...


3-65374
Митяй
2003-09-28 17:24
2003.10.20
Строка в SQL