cpuid alma fonksiyonu bulamıyorum.
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
cpuid alma fonksiyonu bulamıyorum.
Merhaba arkadaşlar projem için işlemci no veya hdd nosu kullanıyordum ama bunu değiştirebiliyorlar ben cpuid için bir çok araştırma yaptım ama bir türlü onun fonksiyonunu bulamadım örnek görüntü bir companent var ama herhangi bir düzenleme olmuyor yani pas dosyası yok ben fonksiyon ile almak istiyorum ve düzenlemek istiyorum kendi projemde.
Bana bu konuda yardımcı olursanız sevinirim.
Bana bu konuda yardımcı olursanız sevinirim.
Re: cpuid alma fonksiyonu bulamıyorum.
Arşivimden bir tane buldum. Şunu deneyip sonucu bildir lütfen. Bende çalışıyor "Windows Enterprise x64"
Aralara çizgi koymak istersen kolaydır biliyorsundur... Bunlarla uğraştığına göre...
Ayrıca aşağıdaki düzenlemeyi, http://www.lohninger.com/cpuid.html linkindeki örnek aldığın projenin formatına göre düzenleyerek aynı CPUID'yi almak üzere düzenledim.
Kullanımı da
Aralara çizgi koymak istersen kolaydır biliyorsundur... Bunlarla uğraştığına göre...
Ayrıca aşağıdaki düzenlemeyi, http://www.lohninger.com/cpuid.html linkindeki örnek aldığın projenin formatına göre düzenleyerek aynı CPUID'yi almak üzere düzenledim.
Kod: Tümünü seç
Serial number of CPU
Kod: Tümünü seç
Function GET_CPUID : String;
function IsCPUID_Available : Boolean; register;
const
ID_BIT = $200000;
asm
PUSHFD
POP EAX
MOV EDX,EAX
XOR EAX,ID_BIT
PUSH EAX
POPFD
PUSHFD
POP EAX
XOR EAX,EDX
JZ @exit
MOV AL,True
@exit:
end;
type
TCPUID = array[1..4] of Longint;
function GetCPUID : TCPUID; assembler; register;
asm
PUSH EBX
PUSH EDI
MOV EDI,EAX
MOV EAX,1
DW $A20F
STOSD
MOV EAX,EBX
STOSD
MOV EAX,ECX
STOSD
MOV EAX,EDX
STOSD
POP EDI
POP EBX
end;
var
CPUId : TCPUID;
i : Integer;
begin
FillChar( CPUId, SizeOf(CPUId), 0);
if IsCPUID_Available then
begin
CPUId := GetCPUID;
Result := IntToHex( CPUId[1], 8 ) + IntToHex( CPUId[4], 8 ) + IntToHex( CPUId[3], 8 ) ;
end
else Result:='ASDZXC';
end;
Kod: Tümünü seç
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Edit1.Text := GET_CPUID;
end;
Re: cpuid alma fonksiyonu bulamıyorum.
Abi teşekkür ederim cevabın ve ilgin için senin fonksiyonda veren değer şu,
Ama diğer programdakı,
senin veren değer değişiyor yani işlemci nodaki değeri veriyor bunu değiştiriyorlar ama cpuid istiyorum ben bunu değiştiremiyorlar.
Kod: Tümünü seç
BFEBFBFF0001067A
Kod: Tümünü seç
134A-2A9F-18A2-7176
Re: cpuid alma fonksiyonu bulamıyorum.
Fonksiyonu senin için yeniden güncelledim. Tekrar dener misin.
Ayrıca adı üzerinde "Calculated CPU Id" program tarafından kombinasyon kurulan değil mi ?
Sana aslen seri numarası lazım değil miydi ? Ben mi yanlış anladım. Yukarıdaki fonksiyon sana aynı seri numarasını bulup getiriyor.
Ayrıca adı üzerinde "Calculated CPU Id" program tarafından kombinasyon kurulan değil mi ?
Sana aslen seri numarası lazım değil miydi ? Ben mi yanlış anladım. Yukarıdaki fonksiyon sana aynı seri numarasını bulup getiriyor.
Re: cpuid alma fonksiyonu bulamıyorum.
Pardon abi özür dilerim ilk verdiğin kodu denemişim çok teşekkür ederim son güncellediğin aslı oldu şimdi asıl cpu id bumu oluyor yani seri numarası bu bilgisayarda değiştirilebiliyor mu mac adresi gibi bu konuda bilgilendirirsen sevinirim birde her bilgisayarınki farklı oluyor mu aynı olma ihtimalı var mıdır?
Re: cpuid alma fonksiyonu bulamıyorum.
Bu CPU'nun seri numarası. Bu değiştirilmez, ancak şu konuda garanti veremem; bu mesajı gören ve bilenler varsa açıklarsa ben de öğrenmiş olurum.
- Windows işletim sisteminin geçmiş, şimdiki ve gelecek versiyonlarında bu bilgiyi okumayı engelleyici bir yaklaşımı var mıdır ?! O konuda emin değilim.
- Windows işletim sisteminin geçmiş, şimdiki ve gelecek versiyonlarında bu bilgiyi okumayı engelleyici bir yaklaşımı var mıdır ?! O konuda emin değilim.
Re: cpuid alma fonksiyonu bulamıyorum.
Teşekkür ederim abi cevabın ve ilgin için bu mesajı gören bilen biri varsa cevap yazarsa makbule geçer inş.
Re: cpuid alma fonksiyonu bulamıyorum.
@mrmarman
hocam kusura bakmayın rahatsız edıoyorum ama bu kodlar %60 oranda her pcde aynı idyi veriyor bir anormallik yok mu bende çözemedim ama benim istediğim şey her pcde 1 kod almak ve o pc lisans vermek yani cpuid dışında başka nasıl yaparım işimi görsün yeterki ama karşıdakı adam bunu değiştirmesin mesela mac-id adamlar değiştirebiliyor onu kullanmak istemıyorum yardımcı olursanız sevinirim.
hocam kusura bakmayın rahatsız edıoyorum ama bu kodlar %60 oranda her pcde aynı idyi veriyor bir anormallik yok mu bende çözemedim ama benim istediğim şey her pcde 1 kod almak ve o pc lisans vermek yani cpuid dışında başka nasıl yaparım işimi görsün yeterki ama karşıdakı adam bunu değiştirmesin mesela mac-id adamlar değiştirebiliyor onu kullanmak istemıyorum yardımcı olursanız sevinirim.
Re: cpuid alma fonksiyonu bulamıyorum.
Selam
Zamanında yaptığım denemelerden edindiğim tecrübe;
Cpu-id bilgisi eski nesil işlemcilerin aynı üretim bandından çıkmış aynı modellerde, aynı değeri taşıyor oldukları yönünde.
Her bilgisayar için tüm windows sürümlerinde lisanslamada kullanabileceğin farklı bildiğim kadarıyla değiştirilemeyen 2 değer var
1-Bios
2-Harddisk Fiziksel Seri Numaraları
Bunlardan Bios numarası ise bazı windows sürümlerinde boş gelebilmekte bu yüzden pek kullanmanı tavsiye etmem.
Harddisk Fiziksel Seri Numaraları ise stabil olup gönül rahatlığıyla kullanabilirsin.Win7,Win8 sistemlerinde bu değere ulaşabilmek için programını yönetici olarak çalıştırman gerekli olabilir.
http://stackoverflow.com/questions/1321 ... ith-delphi Linkinden alıntılanıp kullanıma göre düzenlenmiş aşağıdaki kodlar işini görecektir.
Ayrıca, Virtual Box kullanarak farklı platformlarda farklı işlemci özelliklerinde format yada disk değişikliklerinde kodun nasıl tepki verdiğini inceleyebilirsin.
Zamanında yaptığım denemelerden edindiğim tecrübe;
Cpu-id bilgisi eski nesil işlemcilerin aynı üretim bandından çıkmış aynı modellerde, aynı değeri taşıyor oldukları yönünde.
Her bilgisayar için tüm windows sürümlerinde lisanslamada kullanabileceğin farklı bildiğim kadarıyla değiştirilemeyen 2 değer var
1-Bios
2-Harddisk Fiziksel Seri Numaraları
Bunlardan Bios numarası ise bazı windows sürümlerinde boş gelebilmekte bu yüzden pek kullanmanı tavsiye etmem.
Harddisk Fiziksel Seri Numaraları ise stabil olup gönül rahatlığıyla kullanabilirsin.Win7,Win8 sistemlerinde bu değere ulaşabilmek için programını yönetici olarak çalıştırman gerekli olabilir.
http://stackoverflow.com/questions/1321 ... ith-delphi Linkinden alıntılanıp kullanıma göre düzenlenmiş aşağıdaki kodlar işini görecektir.
Ayrıca, Virtual Box kullanarak farklı platformlarda farklı işlemci özelliklerinde format yada disk değişikliklerinde kodun nasıl tepki verdiğini inceleyebilirsin.
Kod: Tümünü seç
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs,ActiveX,ComObj, Vcl.StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
FSWbemLocator : OLEVariant;
FWMIService : OLEVariant;
implementation
{$R *.dfm}
function GetWMIstring(const WMIClass, WMIProperty:string): string;
const
wbemFlagForwardOnly = $00000020;
var
FWbemObjectSet: OLEVariant;
FWbemObject : OLEVariant;
oEnum : IEnumvariant;
iValue : LongWord;
begin;
Result:='';
FWbemObjectSet:= FWMIService.ExecQuery(Format('Select %s from %s',[WMIProperty, WMIClass]),'WQL',wbemFlagForwardOnly);
oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
if oEnum.Next(1, FWbemObject, iValue) = 0 then
if not VarIsNull(FWbemObject.Properties_.Item(WMIProperty).Value) then
Result:=FWbemObject.Properties_.Item(WMIProperty).Value;
FWbemObject:=Unassigned;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
x:string;
Y:string;
begin
FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
FWMIService := FSWbemLocator.ConnectServer('localhost', 'root\CIMV2', '', '');
X:=GetWMIstring('Win32_BIOS','SerialNumber');
Y:=GetWMIstring('Win32_PhysicalMedia','SerialNumber');
ShowMessage('Bios Seri No:'+trim(x)+#13+'Harddisk Seri No:'+trim(y));
end;
end.
Kalk ve işe yarar bir şey yap! Çünkü Allah (c.c.) yeniden başlayanların yardımcısıdır.
Re: cpuid alma fonksiyonu bulamıyorum.
Hocam teşekkür ederim cevabın için ama windows xp kullanıyorum bende veren değer şu,
Bios seri no boş verdi neden acaba?
Kod: Tümünü seç
Bios Seri No: (BOŞ)
Kod: Tümünü seç
Harddisk Seri No:S2R4J9FB807285
Re: cpuid alma fonksiyonu bulamıyorum.
BIOS bilgilerini okumak için kullanılan Win32_BIOS sınıfına bakarsanız:
Minimum supported client = Windows Vista yazdığını görürsünüz.
Minimum supported client = Windows Vista yazdığını görürsünüz.
There's no place like 127.0.0.1
-
- Üye
- Mesajlar: 216
- Kayıt: 10 Ara 2013 03:50
Re: cpuid alma fonksiyonu bulamıyorum.
"Minimum supported client Windows Vista" yazması sizi yanıltmasın, baktığım sınıfların hepsinde böyle yazıyor. Win32_Bios sınıfı Windows XP'de de çalışıyor.
WMI sistemindeki donanım ile ilgili bilgileri üretici yazılımları sağlıyor olmalı. Mesela HP'nin sunucu ve PC sistemlerinde bu bilgilerin hepsini bulabilirsin. Ama her sistemde maalesef bu bilgiler dolu olmuyor.
Örnek olarak WMI'dan aldığım sistemime ait bilgiler;
Kullandığım sınıflar: Win32_Bios, Win32_BaseBoard, Win32_Processor, Win32_ComputerSystemProduct
Manufacturer: Hewlett-Packard
Model: HP EliteBook 8540w
UUID: 531694EE-F40D-11DE-81D0-B9F76E39E4A1
Bios: Hewlett-Packard
SMBios: 68CVD Ver. F.50 (2.6)
Bios Version: HPQOEM - f
Bios Serial Number: CND0511KC1
Board Serial Number: CND0511KC1
CPU: GenuineIntel Intel(R) Core(TM) i7 CPU M 620 @ 2.67GHz
Cpu Speed: 2667 MHz
CPU Id: BFEBFBFF00020655
WMI sistemindeki donanım ile ilgili bilgileri üretici yazılımları sağlıyor olmalı. Mesela HP'nin sunucu ve PC sistemlerinde bu bilgilerin hepsini bulabilirsin. Ama her sistemde maalesef bu bilgiler dolu olmuyor.
Örnek olarak WMI'dan aldığım sistemime ait bilgiler;
Kullandığım sınıflar: Win32_Bios, Win32_BaseBoard, Win32_Processor, Win32_ComputerSystemProduct
Manufacturer: Hewlett-Packard
Model: HP EliteBook 8540w
UUID: 531694EE-F40D-11DE-81D0-B9F76E39E4A1
Bios: Hewlett-Packard
SMBios: 68CVD Ver. F.50 (2.6)
Bios Version: HPQOEM - f
Bios Serial Number: CND0511KC1
Board Serial Number: CND0511KC1
CPU: GenuineIntel Intel(R) Core(TM) i7 CPU M 620 @ 2.67GHz
Cpu Speed: 2667 MHz
CPU Id: BFEBFBFF00020655
Re: cpuid alma fonksiyonu bulamıyorum.
Kod: Tümünü seç
Harddisk Seri No:S2R4J9FB807285
Re: cpuid alma fonksiyonu bulamıyorum.
(hdd'si olan) her pc de çalışır. ancak 7 ve 8 de Yönetici olarak çalıştırman gerekebilir.
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz
Erkan ÇAĞLAR
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz
Erkan ÇAĞLAR
Re: cpuid alma fonksiyonu bulamıyorum.
Peki hocam bunun gibi başka ne kullanabiliriz ben her pcde 1 kod almak istiyorum mesela mac adresi alıyorum ama bunu değiştiriyorlar?