C# ile İşlemci ve HDD Seri No’sunu Çekme

Merhaba arkadaşlar, geçen gün yaptığım bir otomasyon programımda İşlemcinin seri numarasını çekmem gerekti. Dönen seri numarasına göre key üretip yaptığım otomasyon programının bir adet bilgisayarda kullanmasını amaçladım ve işe yaradı. Bildiğiniz gibi İşlemci veya Seri Numarası özel bir numaradır. Başka bilgisayarlardaki seri numaralarıyla aynı olması mümkün değildir. Bu yüzden genelde İşlemci yada HDD seri numarası alınır.

Projemize aşağıdaki 3 referansı ekliyoruz. Ardından Solution Explorer kısmından References’e gelip sağ tıklayıp “Add References” diyoruz. Gelen ekrandan “System.Management” kısmını seçip “OK” diyoruz.

using System.Management;
using System.Threading.Tasks;
using Microsoft.Win32;

İşlemci seri numarasını çekmek için ;

 private void button1_Click(object sender, EventArgs e) //CPU Seri No
        {
            textBox1.Text = CPUSeriNoCek().ToString();
        }

        public static String CPUSeriNoCek()
        {
            String processorID = "";
            ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * FROM WIN32_Processor");
            ManagementObjectCollection mObject = searcher.Get();

            foreach (ManagementObject obj in mObject)
            {
                processorID = obj["ProcessorId"].ToString();
            }

            return processorID;  
        }

HDD seri numarasını çekmek için ;

string HDDserialNo = string.Empty;
        private void button2_Click(object sender, EventArgs e) //HDD Seri No
        {
            List<string> serialsList = HDDSeriNoCek();
            foreach (string s in serialsList)
            {
                HDDserialNo = HDDserialNo + s;
            }
            HDDserialNo = HDDserialNo.TrimStart(); //Baştaki Boşluğu Kaldırıyoruz.
            textBox2.Text = HDDserialNo;
        }

        public static List<string> HDDSeriNoCek()
        {
            List<string> serials = new List<string>();
            ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
            ManagementObjectCollection disks = searcher.Get();
            foreach (ManagementObject disk in disks)
            {
                if (disk["SerialNumber"] == null)
                    serials.Add("");
                else
                    serials.Add(disk["SerialNumber"].ToString());
            }
            return serials;
        }

Yukarıda ki aynı yapı ile

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

birçok yapıya erişim sağlayabilirsiniz. 🙂

C#
CPU ve HDD Seri No'sunu Çekme
İndirilme : 638 | Dosya Tipi : rar

11 yorum

  1. Gökhan Yanıtla

    merhaba burdaki sorguların getirdiği tabloların alan isimlerini bulabileceğimiz bir yer varmı acaba.

  2. İbrahim Serhat Yanıtla

    Üstad yazdığım projeyi lisanslamak için kullanmam gerekiyordu ve fazlasıyla işime yaradı. Eline sağlık

  3. Mürşit Gülaştı Yanıtla

    Hocam 2 3 tane harddisk olan pc den calıstırınca bu kodu bolme sansımız warmı yada ayrı ayrı textboxlara atma şansımız varmı ?

    • Atakan Yasin Uludağ YazarYanıtla

      Makalede ki kod kaç tane HDD var ise onun seri kodlarını yan yana yazdırıyor.
      Şu kod ile ;
      HDDserialNo = HDDserialNo + s;

      Sen bunu diziye atıp ayrı textboxlara yazdırabilirsin.

  4. Mehmet UĞUR Yanıtla

    Hocam if (disk[“SerialNumber”] == null)
    serials.Add(“”);
    kod blogunun işlevi nedir tam olarak anlamadım. Açıklarsanız sevinirim. (Bu alana durma noktası koyup adım adım izledim anladığım kadarı ile CDROM u kontrol ediyor.)

  5. Bahattin Yanıtla

    Çok teşekkür ederim dostum, uzun zamandır arayıpta bulamadığım şeydi bu 🙂 Aslında select * from ile verdiğin listeninde kısaca ne işe yaradığını yazsaydın daha iyi olurdu ama eline sağlık çok güzel bir paylaşım olmuş.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir