Arkadaşlar merhaba forumda arattırdım ama bulamadım.
Xp nin Serial numarasını regeditten göremiyoruz sanırm. Acaba seri numarasını nasıl görebiliriz kodlar ile
teşekkürler
Windows Xp nin Product Keyini Almak
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Windows Xp nin Product Keyini Almak
Hayat Hayatı Anlamaya Yetmeyecek Kadar Kısadır. Önemli Olan Hayatı Anlamaya Çalışmak Değil Hayattayken Hayatta Olan İnsanlara Bir Eser Bırakabilmek veya Onlara Yardımcı Olabilmektir.
Registry'de kayıtlı...
Anahter yolu :
Anahter yolu :
Kod: Tümünü seç
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
sanırım arkadaşın sorusu başka. ProductKey Windows kitapçığının üzerindeki ve PC üzerine yapıştırılan etikette yazılı olan. Evet... bunu öğrenmenin yolu var elbette.
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" yazılı olan ise ProductID kurulum sonucunda kayıt bilgilerine yerleşen ve Bilgisayarım\Özellikler\Genel sekmesinde gözüken.
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" yazılı olan ise ProductID kurulum sonucunda kayıt bilgilerine yerleşen ve Bilgisayarım\Özellikler\Genel sekmesinde gözüken.
Kodları arşivimden buldum...
Kod: Tümünü seç
Function ProductKeyBul : String;
//bkz. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
const
RegAnahtar = 'Software\Microsoft\Windows NT\CurrentVersion';
RegDeger = 'DigitalProductId';
KarakterSeti = 'BCDFGHJKMPQRTVWXY2346789';
var
RegBaglanti : HKEY;
Kod15 : array[0.. 14] of Byte;
Islem15: array[0.. 14] of Byte;
Kod200 : array[0..199] of Byte;
Tip : DWORD; // Parametre boş kalmasın diye...
Uz200 : DWORD;
Sayac,
Sayac2 : Integer;
Islem : DWORD;
Sonuc : string;
begin
Result := '';
ZeroMemory(@Kod200[0], 200);
RegOpenKey(HKEY_LOCAL_MACHINE, RegAnahtar, RegBaglanti);
Uz200 := 200; // ilk 200 byte veryi alacağımız için
RegQueryValueEx(RegBaglanti, RegDeger, nil, @Tip, @Kod200[0], @Uz200);
RegCloseKey(RegBaglanti);
// $34 (52 dec) offset'den itibaren 14 byte bizim Windows keyimiz
for Sayac := 0 to 14 do begin
Kod15[Sayac] := Kod200[Sayac + $34];
end;
// İkinci ve asıl aşamaya geçtik...
// Kodları gerçek Windows ProductID Formatına dönüştürüyoruz..
Sonuc := '';
for Sayac := 0 to 14 do Islem15[Sayac] := Kod15[Sayac];
for Sayac := 25 downto 0 do begin
Islem := 0;
for Sayac2 := 14 downto 0 do begin
Islem := Islem shl $08;
Inc(Islem, Islem15[Sayac2]);
Islem15[Sayac2] := (Islem div $18) and $ff;
Islem := Islem mod $18;
end;
Sonuc := Sonuc + KarakterSeti[Islem + 1];
end;
// Sonucu tersine çeviriyoruz...
Result := Result + Sonuc[Length(Sonuc) - 1];
for Sayac := Length(Sonuc) - 2 downto 1 do begin
if (Sayac mod 5 = 0) then Result := Result + '-';
Result := Result + Sonuc[Sayac];
end;
end;