Delphi Can
Kullanıcı adı oluşturma - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Mobil Platform - FireMonkey (FMX) (https://www.delphican.com/forumdisplay.php?fid=7)
+--- Konu Başlığı: Kullanıcı adı oluşturma (/showthread.php?tid=7130)



Kullanıcı adı oluşturma - Altıner - 06-01-2023

Merhaba, Delphi Community kullanıyorum.

FMX ile yapmış olduğum programda kullanıcının bilgisayar adıyla programa giriş yapmasını sağlıyorum.
Yanlız PC'ye format atılması veya adının değişmesi durumda daha önce kayıt altına almış oduğum kullanıcı adı bir işe yaramaz oluyor.


PC'ye format atılsa bile değişmemyecek bir kullanıcı adı nasıl? alabilirim.


Kullanıcı adı:

procedure TMainForm.FormShow(Sender: TObject);
var
  FileSystemFlags: DWORD;
  VolumeSerialNumber: DWORD;
  MaximumComponentLength: DWORD;
begin
  if GetVolumeInformation('C:\', Nil, 0, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, Nil, 0) then
  begin
    ButtonUserLogin.Text := IntToHex(HiWord(VolumeSerialNumber), 5) + IntToHex(LoWord(VolumeSerialNumber), 4);
  end;
end;



Cvp: Kullanıcı adı oluşturma - hi_selamlar - 06-01-2023

(06-01-2023, Saat: 11:55)Altıner Adlı Kullanıcıdan Alıntı: Merhaba, Delphi Community kullanıyorum.

FMX ile yapmış olduğum programda kullanıcının bilgisayar adıyla programa giriş yapmasını sağlıyorum.
Yanlız PC'ye format atılması veya adının değişmesi durumda daha önce kayıt altına almış oduğum kullanıcı adı bir işe yaramaz oluyor.


PC'ye format atılsa bile değişmemyecek bir kullanıcı adı nasıl? alabilirim.


Kullanıcı adı:

procedure TMainForm.FormShow(Sender: TObject);
var
  FileSystemFlags: DWORD;
  VolumeSerialNumber: DWORD;
  MaximumComponentLength: DWORD;
begin
  if GetVolumeInformation('C:\', Nil, 0, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, Nil, 0) then
  begin
    ButtonUserLogin.Text := IntToHex(HiWord(VolumeSerialNumber), 5) + IntToHex(LoWord(VolumeSerialNumber), 4);
  end;
end;

Merhabalar,

Siz HDD'nin VolumeSerialNumber'ını alıyorsunuz. HDD formatlanmasında bu değişir.
Bu nedenle kalıcı bilgileri almanız gerekli.

Örneğin;
 - HDD Fabrika Numarası
 - CPU ID
 - AnaKart ID  gibi.

Örnek HDD Fabrika ID'si için
 - https://stackoverflow.com/questions/13215713/get-real-hdd-serial-number-with-delphi
 - https://stackoverflow.com/questions/5202270/in-delphi7-how-can-i-retrieve-hard-disk-unique-serial-number

İnceleyebilirsiniz.

Kolay gelsin.


Kullanıcı adı oluşturma - Altıner - 09-01-2023

@hi_selamlar Teşekkür ederim.