Merhaba arkadaşlar bu yazımzıda c# uygulaması ile nasıl donanım kimliklerini buluruz bundan bahsedeceğiz.
Donanım kimliğini bulmak ne işimze yarayabilir diye soracak olursak, örnek olarak bir lisanslama uygulaması yapabiliriz ya da takılı aygıtların seri-üretim numaralarını almak için kullanabiliriz. Uygulamayı kodlamaya başlayalım.
Öncelikle bu işlemi gerçekleştirmek için System.Management referansını tanımlamaya ihtiyacımız var. Referans tanımlama işlemini nasıl yapacağınızı bilmiyorsanız buyurun tıklayın.
System.Management kütüphanesini tanımladıktan sonra 3 adet kütüphane tanımlamamız gerekiyor. Bunlar:
using System.Management; using System.Threading.Tasks; using Microsoft.Win32;
Yukarıdaki kütüphaneleri tanımladıktan sonra istediğimiz işlemleri yapmaya hazırız. Buradan sonra hangi donanımızın kimliğini almak istiyorsak ona göre işlem yapacağız. Örnek olarak Hard Disk kimliğini bulmayı deneyelim.
Bu işlemi yapmak için bir metod tanımlayalım.
public List hardDiskBul() { List serial = new List(); ManagementObjectSearcher arastir = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia"); ManagementObjectCollection diskler= arastir.Get(); foreach (ManagementObject disk in diskler) { if (disk["SerialNumber"] == null) serial.Add(""); else serial.Add(disk["SerialNumber"].ToString()); } return serial; }
Bu fonksiyonu kullanmak bize fiziksel aygıtlarımızın seri numarasını bulmamızı sağlayacaktır. Liste kullanmamızın amacı, bilgisayarımızda bulunan birden fazla fiziksel aygıtın kimliği dönmesinden kaynaklanmaktadır.
Örnek olarak bu fonksiyonu bir button içinden çağırdığımızı düşünecek olursak:
private void button1_Click(object sender, EventArgs e) { String hardDiskSerial=""; List serialler= hardDiskBul(); foreach (string gelenS in serialler) { hardDiskSerial= HDDserialNo + gelenS; } textBox1.Text = hardDiskSerial; }
Yukarıdaki kod parçasından anlayacağımız üzere, button1 komponentinin click olayı tetiklendiğinde textBox1 içindeki string değişecek ve fiziksel aygıtımızın seri numarasını bulmuş olacağız. Başka hangi aygıtlarımızın numaralarını bulmak istiyorsak aşağıdaki listeden faydalanabiliriz.
Select * FROM WIN32_Processor Select * FROM WIN32_ComputerSystem Select * FROM WIN32_OperatingSystem Select * FROM WIN32_Environment Select * FROM WIN32_SystemDriver Select * FROM WIN32_Service Select * FROM WIN32_Process Select * FROM WIN32_StartupCommand Select * FROM WIN32_Registry Select * FROM WIN32_NTEventLogFile Select * FROM WIN32_TimeBone Select * FROM WIN32_QuickFixEngineering Select * FROM WIN32_BootConfiguration Select * FROM WIN32_WMISetting Select * FROM WIN32_DiskDrive Select * FROM WIN32_LogicalDisk Select * FROM WIN32_DiskPartition Select * FROM WIN32_Share Select * FROM WIN32_IDEController Select * FROM WIN32_CDROMDrive Select * FROM WIN32_SystemSlot Select * FROM WIN32_PhysicalMemory Select * FROM WIN32_PhysicalMemoryArray Select * FROM WIN32_BIOS Select * FROM WIN32_DesktopMonitor Select * FROM WIN32_NetworkAdaptor Select * FROM WIN32_Configuration Select * FROM WIN32_Printer Select * FROM WIN32_UserAccount Select * FROM WIN32_SystemAccount Select * FROM WIN32_NTDomain Select * FROM WIN32_Group Select * FROM WIN32_ComputerSystemProduct
Bu listeden faydalanarak bilgisayarımızda takılı diğer fiziksel / mantıksal aygıtların da kimlik numaralarını elde edebiliriz.
Bu konu hakkındaki soru ve görüşlerinizi yorum kısmından veya mail atarak elde edebilirsiniz.
Teşekürler.