Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2011, 11:34   #1
paravoz1k
Пользователь
 
Аватар для paravoz1k
 
Регистрация: 26.03.2010
Сообщений: 78
По умолчанию Как получить уникальный номер компьютера?

Возник такой вопрос
Как с помощью делфи получить уникальный номер компьютера, или какой-либо уникальный номер процессора и прочее.
Для чего необходимо: Для защиты программ от распространения, т.е. программа будет привязываться к номеру.
Благодарю заранее за ответ.
Начинающий кодер Delphi + PHP
paravoz1k вне форума Ответить с цитированием
Старый 04.02.2011, 12:17   #2
true1
trueman
Пользователь
 
Регистрация: 21.11.2010
Сообщений: 12
По умолчанию

получи серийник жесткого:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
VolumeSerialNumber : DWORD;
MaximumComponentLength : DWORD;
FileSystemFlags : DWORD;
SerialNumber : string;
begin
GetVolumeInformation('C:\',  nil, 0, @VolumeSerialNumber,
MaximumComponentLength, FileSystemFlags,  nil,  0);
SerialNumber := IntToHex(HiWord(VolumeSerialNumber), 4) +   '-' +
IntToHex(LoWord(VolumeSerialNumber), 4);  Memo1.Lines.Add(SerialNumber);
end;
true1 вне форума Ответить с цитированием
Старый 04.02.2011, 12:19   #3
paravoz1k
Пользователь
 
Аватар для paravoz1k
 
Регистрация: 26.03.2010
Сообщений: 78
По умолчанию

true1 спасибо. То что нужно.
Начинающий кодер Delphi + PHP
paravoz1k вне форума Ответить с цитированием
Старый 29.07.2011, 21:30   #4
vatik
 
Регистрация: 10.11.2010
Сообщений: 4
Восклицание Серийный номер Жесткого диска не является уникальным его легко изменить?

Цитата:
Сообщение от true1 Посмотреть сообщение
получи серийник жесткого:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
VolumeSerialNumber : DWORD;
MaximumComponentLength : DWORD;
FileSystemFlags : DWORD;
SerialNumber : string;
begin
GetVolumeInformation('C:\',  nil, 0, @VolumeSerialNumber,
MaximumComponentLength, FileSystemFlags,  nil,  0);
SerialNumber := IntToHex(HiWord(VolumeSerialNumber), 4) +   '-' +
IntToHex(LoWord(VolumeSerialNumber), 4);  Memo1.Lines.Add(SerialNumber);
end;
Придумай что-нибудь лучшее - как в делфи прочитать серийный номер процессора - ответь на vatik@ua.fm - если такой умник
vatik вне форума Ответить с цитированием
Старый 30.07.2011, 10:51   #5
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

а для чего ставиться этот знак @ тут @VolumeSerialNumber
cargo29 вне форума Ответить с цитированием
Старый 30.07.2011, 14:56   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
а для чего ставиться этот знак @ тут @VolumeSerialNumber
так передаётся адрес объекта.

вот, из хелпа
Цитата:
Addr function

Returns a pointer to a specified object.

Unit

System

Category

pointer and address routines

function Addr(X): Pointer;

Description

The Addr function returns the address of a specified object. X is any variable, procedure or function identifier. The result is a pointer to X.

The result of Addr is of the predefined type Pointer, which means that it is assignment-compatible with all pointer types but can't be dereferenced directly without a typecast.

Note: Addr is equivalent to the @ operator.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.07.2011, 15:27   #7
xrenomx
Пользователь
 
Аватар для xrenomx
 
Регистрация: 05.02.2011
Сообщений: 63
По умолчанию

Цитата:
Сообщение от cargo29 Посмотреть сообщение
а для чего ставиться этот знак @ тут @VolumeSerialNumber
Для этого необходимо разобрать тему указателей / ссылок.

Пример:

Код:
var
q:pointer;
str:string;
begin
q:=@Str; // Указателю присваивается ссылка на строку
Str:='hello world'; // Присваивается значение строки
edit1.text:=String(q^); // Вывод текста
end;
xrenomx вне форума Ответить с цитированием
Старый 31.07.2011, 20:12   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
получи серийник жесткого:
А если я захочу ЖД поменять? Накрылась прога? Может тады фтопку такую прогу даже если я за нее заплатил?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.08.2011, 17:47   #9
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Это тупиковый путь, защита по железу.
Alter вне форума Ответить с цитированием
Старый 01.08.2011, 19:52   #10
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Цитата:
Сообщение от xrenomx Посмотреть сообщение
Для этого необходимо разобрать тему указателей / ссылок.

Пример:

Код:
var
q:pointer;
str:string;
begin
q:=@Str; // Указателю присваивается ссылка на строку
Str:='hello world'; // Присваивается значение строки
edit1.text:=String(q^); // Вывод текста
end;
Спасибо а то в книге читал и ничего не понял по этому поводу... только приемущества какие ? не лече было бы сразу указать переменную строки?
cargo29 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить номер элемента по его ID? AlkaloiD JavaScript, Ajax 9 02.12.2010 09:47
У чего в системном блоке есть уникальный номер? Человек_Борща Компьютерное железо 8 18.05.2010 07:26
как побороть уникальный индекс? zander Microsoft Office Access 4 11.01.2010 00:07
J2me как скачать и получить серийный номер для Эмулятора Nokia?? Tik-Tik Общие вопросы по Java, Java SE, Kotlin 0 26.08.2009 20:00
Получить номер столбца motorway Microsoft Office Excel 2 16.07.2009 21:39