Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Xác định thông tin phần cứng máy tính trong C#?

  1. #1
    Ngày gia nhập
    11 2007
    Nơi ở
    Biết để làm gì?
    Bài viết
    827

    Mặc định Xác định thông tin phần cứng máy tính trong C#?

    Namespace nào trong C# hỗ trợ cho việc xác định các thông tin về phần cứng máy tính như là : serial,size ... của HDD, hay là thông tin về quạt chip... gì gì đấy nhỉ?
    Cánh Chym ứ mỏi

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Bạn thử tham khảo tại đây xem: _http://downloads.sourceforge.net/drvback/DriverBackup13Source.rar?modtime=1177438529&big_mi rror=0
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    09 2007
    Bài viết
    724

    Tham khảo ở đây thử nhé
    Ref Links Code:

    Cheers! (mới chôm được của anh dark )
    Đã được chỉnh sửa lần cuối bởi zkday2686 : 17-10-2008 lúc 02:43 AM.

  4. #4
    Ngày gia nhập
    11 2007
    Nơi ở
    Biết để làm gì?
    Bài viết
    827

    Cảm ơn 2 pro, hóa ra là dùng namespace System.Management;
    Post luôn code lên luôn cho mọi nguòi ai muốn tìm hiểu

    Visual C# Code:
    1. using System;
    2. using System.Text;
    3. using System.Management;
    4.  
    5. {
    6.     public class WMI
    7.     {      
    8.         /// <summary>
    9.         /// method to retrieve the selected HDD's serial number
    10.         /// </summary>
    11.         /// <param name="strDriveLetter">Drive letter to retrieve serial number for</param>
    12.         /// <returns>the HDD's serial number</returns>
    13.         public string GetHDDSerialNumber(string drive)
    14.         {
    15.             //check to see if the user provided a drive letter
    16.             //if not default it to "C"
    17.             if (drive == "" || drive == null)
    18.             {
    19.                 drive = "C";
    20.             }
    21.             //create our ManagementObject, passing it the drive letter to the
    22.             //DevideID using WQL
    23.             ManagementObject disk = new ManagementObject("Win32_LogicalDisk.DeviceID=\"" + drive + ":\"");
    24.             //bind our management object
    25.             disk.Get();
    26.             //return the serial number
    27.             return disk["VolumeSerialNumber"].ToString();
    28.         }
    29.  
    30.         /// <summary>
    31.         /// method to retrieve the HDD's freespace
    32.         /// </summary>
    33.         /// <param name="drive">Drive letter to get free space from (optional)</param>
    34.         /// <returns>The free space of the selected HDD</returns>
    35.         public double GetHDDFreeSpace(string drive)
    36.         {
    37.             //check to see if the user provided a drive letter
    38.             //if not default it to "C"
    39.             if (drive == "" || drive == null)
    40.             {
    41.                 drive = "C";
    42.             }
    43.             //create our ManagementObject, passing it the drive letter to the
    44.             //DevideID using WQL
    45.             ManagementObject disk = new ManagementObject("Win32_LogicalDisk.DeviceID=\"" + drive + ":\"");
    46.             //bind our management object
    47.             disk.Get();
    48.             //return the free space amount
    49.             return Convert.ToDouble(disk["FreeSpace"]);
    50.         }
    51.  
    52.         /// <summary>
    53.         /// method to retrieve the HDD's size
    54.         /// </summary>
    55.         /// <param name="drive">Drive letter to get free space from (optional)</param>
    56.         /// <returns>The free space of the selected HDD</returns>
    57.         public double getHDDSize(string drive)
    58.         {
    59.             //check to see if the user provided a drive letter
    60.             //if not default it to "C"
    61.             if (drive == "" || drive == null)
    62.             {
    63.                 drive = "C";
    64.             }
    65.             //create our ManagementObject, passing it the drive letter to the
    66.             //DevideID using WQL
    67.             ManagementObject disk = new ManagementObject("Win32_LogicalDisk.DeviceID=\"" + drive + ":\"");
    68.             //bind our management object
    69.             disk.Get();
    70.             //return the HDD's initial size
    71.             return Convert.ToDouble(disk["Size"]);
    72.         }
    73.  
    74.         /// <summary>
    75.         /// method to find out the IPEnabled of
    76.         /// the network adapter
    77.         /// </summary>
    78.         /// <returns></returns>
    79.         public bool IsIPEnabled()
    80.         {
    81.             //create out management class object using the
    82.             //Win32_NetworkAdapterConfiguration class to get the attributes
    83.             //of the network adapter
    84.             ManagementClass mgmt = new ManagementClass("Win32_NetworkAdapterConfiguration");
    85.             //create our ManagementObjectCollection to get the attributes with
    86.             ManagementObjectCollection objCol = mgmt.GetInstances();
    87.             bool enabled = false;
    88.             foreach (ManagementObject obj in objCol)
    89.             {
    90.                 //get the status of the first adapter then
    91.                 //exit the loop
    92.                 enabled = (bool)obj["IPEnabled"];
    93.                 break;
    94.                 //dispose of the object
    95.                 obj.Dispose();
    96.             }
    97.             //return the IPEnabled status
    98.             return enabled;
    99.         }
    100.  
    101.         /// <summary>
    102.         /// Returns MAC Address from first Network Card in Computer
    103.         /// </summary>
    104.         /// <returns>MAC Address in string format</returns>
    105.         public string FindMACAddress()
    106.         {
    107.             //create out management class object using the
    108.             //Win32_NetworkAdapterConfiguration class to get the attributes
    109.             //of the network adapter
    110.             ManagementClass mgmt = new ManagementClass("Win32_NetworkAdapterConfiguration");
    111.             //create our ManagementObjectCollection to get the attributes with
    112.             ManagementObjectCollection objCol = mgmt.GetInstances();
    113.             string address = String.Empty;
    114.             //loop through all the objects we find
    115.             foreach (ManagementObject obj in objCol)
    116.             {
    117.                 if (address == String.Empty)  // only return MAC Address from first card
    118.                 {
    119.                     //grab the value from the first network adapter we find
    120.                     //you can change the string to an array and get all
    121.                     //network adapters found as well
    122.                     //check to see if the adapter's IPEnabled
    123.                     //equals true
    124.                     if ((bool)obj["IPEnabled"] == true)
    125.                     {
    126.                         address = obj["MacAddress"].ToString();
    127.                     }
    128.                 }
    129.                 //dispose of our object
    130.                 obj.Dispose();
    131.             }
    132.             //replace the ":" with an empty space, this could also
    133.             //be removed if you wish
    134.             address = address.Replace(":", "");
    135.             //return the mac address
    136.             return address;
    137.         }
    138.  
    139.         /// <summary>
    140.         /// method to retrieve the network adapters
    141.         /// default IP gateway using WMI
    142.         /// </summary>
    143.         /// <returns>adapters default IP gateway</returns>
    144.         public string GetDefaultIPGateway()
    145.         {
    146.             //create out management class object using the
    147.             //Win32_NetworkAdapterConfiguration class to get the attributes
    148.             //of the network adapter
    149.             ManagementClass mgmt = new ManagementClass("Win32_NetworkAdapterConfiguration");
    150.             //create our ManagementObjectCollection to get the attributes with
    151.             ManagementObjectCollection objCol = mgmt.GetInstances();
    152.             string gateway = String.Empty;
    153.             //loop through all the objects we find
    154.             foreach (ManagementObject obj in objCol)
    155.             {
    156.                 if (gateway == String.Empty)  // only return MAC Address from first card
    157.                 {
    158.                     //grab the value from the first network adapter we find
    159.                     //you can change the string to an array and get all
    160.                     //network adapters found as well
    161.                     //check to see if the adapter's IPEnabled
    162.                     //equals true
    163.                     if ((bool)obj["IPEnabled"] == true)
    164.                     {
    165.                         gateway = obj["DefaultIPGateway"].ToString();
    166.                     }
    167.                 }
    168.                 //dispose of our object
    169.                 obj.Dispose();
    170.             }
    171.             //replace the ":" with an empty space, this could also
    172.             //be removed if you wish
    173.             gateway = gateway.Replace(":", "");
    174.             //return the mac address
    175.             return gateway;
    176.         }
    177.  
    178.         /// <summary>
    179.         /// Return processorId from first CPU in machine
    180.         /// </summary>
    181.         /// <returns>[string] ProcessorId</returns>
    182.         public string GetCPUId()
    183.         {
    184.             string cpuInfo =  String.Empty;            
    185.             //create an instance of the Managemnet class with the
    186.             //Win32_Processor class
    187.             ManagementClass mgmt = new ManagementClass("Win32_Processor");
    188.             //create a ManagementObjectCollection to loop through
    189.             ManagementObjectCollection objCol = mgmt.GetInstances();
    190.             //start our loop for all processors found
    191.             foreach(ManagementObject obj in objCol)
    192.             {
    193.                 if(cpuInfo == String.Empty)
    194.                 {
    195.                     // only return cpuInfo from first CPU
    196.                     cpuInfo = obj.Properties["ProcessorId"].Value.ToString();
    197.                 }            
    198.             }
    199.             return cpuInfo;    
    200.         }
    201.  
    202.         /// <summary>
    203.         /// method for retrieving the CPU Manufacturer
    204.         /// using the WMI class
    205.         /// </summary>
    206.         /// <returns>CPU Manufacturer</returns>
    207.         public string GetCPUManufacturer()
    208.         {
    209.             string cpuMan = String.Empty;
    210.             //create an instance of the Managemnet class with the
    211.             //Win32_Processor class
    212.             ManagementClass mgmt = new ManagementClass("Win32_Processor");
    213.             //create a ManagementObjectCollection to loop through
    214.             ManagementObjectCollection objCol = mgmt.GetInstances();
    215.             //start our loop for all processors found
    216.             foreach (ManagementObject obj in objCol)
    217.             {
    218.                 if (cpuMan == String.Empty)
    219.                 {
    220.                     // only return manufacturer from first CPU
    221.                     cpuMan = obj.Properties["Manufacturer"].Value.ToString();
    222.                 }
    223.             }
    224.             return cpuMan;     
    225.         }
    226.  
    227.         /// <summary>
    228.         /// method for retrieving the CPU status
    229.         /// using the WMI class
    230.         /// </summary>
    231.         /// <returns>the CPU status</returns>
    232.         public string GetCPUStatus()
    233.         {
    234.             string cpuStatus = String.Empty;
    235.             //create an instance of the Managemnet class with the
    236.             //Win32_Processor class
    237.             ManagementClass mgmt = new ManagementClass("Win32_Processor");
    238.             //create a ManagementObjectCollection to loop through
    239.             ManagementObjectCollection objCol = mgmt.GetInstances();
    240.             //start our loop for all processors found
    241.             foreach (ManagementObject obj in objCol)
    242.             {
    243.                 if (cpuStatus == String.Empty)
    244.                 {
    245.                     // only return cpuStatus from first CPU
    246.                     cpuStatus = obj.Properties["Status"].Value.ToString();
    247.                 }
    248.             }
    249.             //return the status
    250.             return cpuStatus;  
    251.         }
    252.  
    253.         /// <summary>
    254.         /// method to retrieve the CPU's current
    255.         /// clock speed using the WMI class
    256.         /// </summary>
    257.         /// <returns>Clock speed</returns>
    258.         public int GetCPUCurrentClockSpeed()
    259.         {
    260.             int cpuClockSpeed = 0;
    261.             //create an instance of the Managemnet class with the
    262.             //Win32_Processor class
    263.             ManagementClass mgmt = new ManagementClass("Win32_Processor");
    264.             //create a ManagementObjectCollection to loop through
    265.             ManagementObjectCollection objCol = mgmt.GetInstances();
    266.             //start our loop for all processors found
    267.             foreach (ManagementObject obj in objCol)
    268.             {
    269.                 if (cpuClockSpeed == 0)
    270.                 {
    271.                     // only return cpuStatus from first CPU
    272.                     cpuClockSpeed = Convert.ToInt32(obj.Properties["CurrentClockSpeed"].Value.ToString());
    273.                 }
    274.             }
    275.             //return the status
    276.             return cpuClockSpeed;  
    277.         }
    278.     }
    279. }
    Cánh Chym ứ mỏi

  5. #5
    Ngày gia nhập
    07 2009
    Bài viết
    12

    Thế làm thế nào để nó hiện lên Form nhỉ, hơi gà nên không biết =.=!

  6. #6
    Ngày gia nhập
    08 2009
    Bài viết
    5

    Mặc định Xác định thông tin phần cứng máy tính trong C#?

    Thấy toàn trả về kiểu string , double ... có gì cao xa đâu mà ko hiển thị được ????

  7. #7
    Ngày gia nhập
    03 2009
    Bài viết
    11

    Mình muốn làm 1 ví dụ về cách lấy các thư mục của ổ C mà không biết , bạn nào giúp mình với , sử dụng namespace nào dzạ

  8. #8
    Ngày gia nhập
    10 2011
    Bài viết
    443

    using 'System.Management' trong class hoặc form, và Add Reperences 'System.Management'

Các đề tài tương tự

  1. Lập trình C tìm xem trong mảng số nguyên i_Mang[] có bao nhiêu phần tử có giá trị âm & phần tử có giá trị âm trong mảngn
    Gửi bởi fawker trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 29-05-2013, 03:28 PM
  2. Bài tập C xóa phần tử trùng nhau trong mảng 1 chiều để lại 1 phần tử
    Gửi bởi ronoa trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 06-01-2012, 10:46 PM
  3. Thủ tục loại bỏ các phần tử trùng nhau, giữ lại duy nhất 1 phần tử trong DSLK
    Gửi bởi mrtyoffline trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 02-03-2011, 10:27 PM
  4. Thuật toán trên C | Xóa phần tử trong dãy phần tử tăng dần?
    Gửi bởi quangphuit trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 09-03-2010, 01:57 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn