PascalProgramlama
Delphi Programlama Dili – İşlemci ve Sistem Temelli Bazı Fonksiyonlar
![](https://i0.wp.com/www.cazda.com/wp-content/uploads/BuiltWithDelphi.jpg?fit=521%2C212&ssl=1)
Bu bölümde bilgisayara ait işlemci, bios, bellek, network bilgileri nasıl alınır onları göstereceğiz. Aşağıdaki Delphi fonksiyonları kopyala-yapıştır yaparak kendi kodlarınız içinde kullanabilirsiniz.
[fac_icon icon=”file-code-o”] Çalışan bilgisayarın işlemci adını getiren fonksiyon
Kullanılan unit’ler : Windows, Registry
function IslemciAdi: string; var Reg: Registry.TRegistry; begin Result := ''; Reg := Registry.TRegistry.Create(Windows.KEY_READ); try Reg.RootKey := Windows.HKEY_LOCAL_MACHINE; if not Reg.OpenKey('HARDWARE\DESCRIPTION\System\CentralProcessor\0\', False) then Exit; Result := Reg.ReadString('ProcessorNameString'); Reg.CloseKey; finally Reg.Free; end; end;
Daha detay bilgilere ihtiyacınız varsa buradaki makalemize göz atınız.
[fac_icon icon=”file-code-o”] Çalışan bilgisayarın işlemci tanımını (identifier) getiren fonksiyon
Kullanılan unit’ler : Windows, Registry
function IslemciTanimi: string; var Reg: Registry.TRegistry; begin Result := ''; Reg := Registry.TRegistry.Create(Windows.KEY_READ); try Reg.RootKey := Windows.HKEY_LOCAL_MACHINE; if not Reg.OpenKey( 'HARDWARE\DESCRIPTION\System\CentralProcessor\0\', False ) then Exit; Result := Reg.ReadString('Identifier'); Reg.CloseKey; finally Reg.Free; end; end;
[fac_icon icon=”file-code-o”] Çalışan bilgisayarın MAC adresini getiren fonksiyon
Kullanılan unit’ler : SysUtils, Windows, Nb30
function MacAdres: string; type TAStat = packed record Adapt: Nb30.TAdapterStatus; NameBuff: array[0..29] of Nb30.TNameBuffer; end; var Adapter: TAStat; // Network adaptörle ilgili bilgi AdapterList: Nb30.TLanaEnum; // Kaç tane network adaptörü var Ncb: Nb30.TNCB; // network control block I: Integer; // Network adaptörlerini sırasıyla taramak için döngü değişkeni // --------------------------------------------------------------------------- function NetBiosSucceeded(const RetCode: AnsiChar): Boolean; begin Result := Windows.UCHAR(RetCode) = Nb30.NRC_GOODRET; end; // --------------------------------------------------------------------------- begin Result := ''; // Network adaptör listesini alalım FillChar(Ncb, SizeOf(Ncb), 0); Ncb.ncb_command := AnsiChar(Nb30.NCBENUM); Ncb.ncb_buffer := PAnsiChar(@AdapterList); Ncb.ncb_length := SizeOf(AdapterList); if not NetBiosSucceeded(Nb30.Netbios(@Ncb)) then Exit; // Adaptörlerin durumuna bakalım for I := 0 to Pred(Integer(AdapterList.length)) do begin // Adaptörü resetleyelim FillChar(Ncb, SizeOf(Ncb), 0); Ncb.ncb_command := AnsiChar(Nb30.NCBRESET); Ncb.ncb_lana_num := AdapterList.lana[I]; if not NetBiosSucceeded(Nb30.Netbios(@Ncb)) then Exit; // Durumunu alalım FillChar(Ncb, SizeOf(Ncb), 0); Ncb.ncb_command := AnsiChar(Nb30.NCBASTAT); Ncb.ncb_lana_num := AdapterList.lana[I]; Ncb.ncb_callname := '* '; Ncb.ncb_buffer := PAnsiChar(@Adapter); Ncb.ncb_length := SizeOf(Adapter); if NetBiosSucceeded(Nb30.Netbios(@Ncb)) then begin with Adapter.Adapt do Result := SysUtils.Format( '%.2x-%.2x-%.2x-%.2x-%.2x-%.2x', [ Ord(adapter_address[0]), Ord(adapter_address[1]), Ord(adapter_address[2]), Ord(adapter_address[3]), Ord(adapter_address[4]), Ord(adapter_address[5]) ] ); Exit; end; end; end;
[fac_icon icon=”file-code-o”] Çalışan bilgisayarın IP adresini getiren fonksiyon
Kullanılan unit’ler : SysUtils, Windows, WinSock
function IPAdresim: string; var WSData: WinSock.TWSAData; HostName: array [0..14] of AnsiChar; // bilgisayarın standard adı (hostname) HostEnt: WinSock.PHostEnt; // Host adı ile ilgili bilgi Addr: PAnsiChar; begin Result := '0.0.0.0'; if WinSock.WSAStartup(Windows.MakeWord(1, 1), WSData) <> 0 then Exit; try WinSock.GetHostName(HostName, SizeOf(HostName)); HostEnt := WinSock.GetHostByName(HostName); if Assigned(HostEnt) and Assigned(HostEnt^.h_addr_list) then begin Addr := HostEnt^.h_addr_list^; if Assigned(Addr) and (HostEnt^.h_length >= 4) then begin Result := SysUtils.Format( '%d.%d.%d.%d', [Ord(Addr[0]), Ord(Addr[1]), Ord(Addr[2]), Ord(Addr[3])] ); end; end; finally WSACleanup; end; end;
[fac_icon icon=”file-code-o”] Çalışan bilgisayarın Bios üreticisi kim?
Kullanılan unit’ler : Windows, Registry
function BiosUreticisi: string; var Reg: Registry.TRegistry; begin Result := ''; Reg := Registry.TRegistry.Create(Windows.KEY_READ); try Reg.RootKey := Windows.HKEY_LOCAL_MACHINE; if not Reg.OpenKey('HARDWARE\DESCRIPTION\System\Bios\', False) then Exit; Result := Reg.ReadString('BIOSVendor'); Reg.CloseKey; finally Reg.Free; end; end;
[fac_icon icon=”file-code-o”] Çalışan bilgisayarın toplam fiziksel bellek boyutu
Kullanılan unit’ler : Windows
function ToplamFizikselBellekBoyutu: Int64; var MemoryEx: Windows.TMemoryStatusEx; begin begin MemoryEx.dwLength := SizeOf(TMemoryStatusEx); Windows.GlobalMemoryStatusEx(MemoryEx); Result := MemoryEx.ullTotalPhys; end; end;
[fac_icon icon=”file-code-o”] Çalışan bilgisayarın boşta kalan fiziksel bellek boyutu
Kullanılan unit’ler : Windows
function BostaFizikselBellekBoyutu: Int64; var MemoryEx: Windows.TMemoryStatusEx; begin begin MemoryEx.dwLength := SizeOf(Windows.TMemoryStatusEx); Windows.GlobalMemoryStatusEx(MemoryEx); Result := MemoryEx.ullAvailPhys; end; end;
[fac_icon icon=”file-code-o”] Çalışan bilgisayarın kullanılan fiziksel bellek yüzdesi
Kullanılan unit’ler : Windows
function BostaFizikselBellekBoyutuYuzde: Byte; var MemoryEx: Windows.TMemoryStatusEx; begin begin MemoryEx.dwLength := SizeOf(Windows.TMemoryStatusEx); Windows.GlobalMemoryStatusEx(MemoryEx); Result := Byte(MemoryEx.dwMemoryLoad); end; end;