Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 13 kết quả

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

  1. #1
    Ngày gia nhập
    01 2008
    Bài viết
    240

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

    mình muốn dùng .NET để lấy thông tin về toàn bộ phần cứng của máy tính mà chưa biết làm thế nào?mong các bạn giúp đỡ
    thanks
    Time

  2. #2
    Ngày gia nhập
    02 2008
    Bài viết
    15

    Sao lại post bài trong box hướng dẫn thế này ? nhờ MOD chuyễn topic này qua box Hỏi/Đáp nhé

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

    Visual C# Code:
    1. using System;
    2. using System.Text;
    3. using System.Management;//[COLOR="Red"]sử dụng namespace này
    4. [/COLOR]
    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

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

    Wink Code C# Lấy tât cả thông tin phần cứng máy tính

    Ai biết chỉ mình viết đoạn code C# lấy phần cứng máy tính ví dụ như: CPU,RAM,HDD,NameComputer,Hệ điều hành,User,.... mình xin cam ơn trước.mình có đọc qua mấy bài nhưng không hổ trợ cụ thể

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

    Trích dẫn Nguyên bản được gửi bởi leanhit Xem bài viết
    Ai biết chỉ mình viết đoạn code C# lấy phần cứng máy tính ví dụ như: CPU,RAM,HDD,NameComputer,Hệ điều hành,User,.... mình xin cam ơn trước.mình có đọc qua mấy bài nhưng không hổ trợ cụ thể
    Của bạn ở đây http://69.10.233.10/KB/IP/remotesysinformation.aspx
    Cánh Chym ứ mỏi

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

    Mặc định Thank

    Ok! Trước hết cho minh cảm ơn trước nhé!Có gì mình thông tin lại sau. Byee!

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

    Mặc định Lấy thông tin phần cứng máy tính = C#

    xin chào bạn dieucay555!
    Đoạn code trên không lấy được địa chỉ IP và User. Còn ổ cứng tôi muốn lấy hết thông tin dữ liệu chưa dùng!và không dùng From để lập trình mà cho no chạy trên DOS. Về đoạn code thư viên thì không xài được!
    xin mọi người giúp đở dùm, mình thử đủ mọi cách rồi!"botay.com" hehehe
    Đã được chỉnh sửa lần cuối bởi leanhit : 08-07-2009 lúc 09:57 AM. Lý do: Do sai chính tả

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

    Xin Chào các bạn!
    Mình có 1 chương trình lấy thông tin máy tính gửi về cho server nhưng nó chỉ chạy trên admin hoặc user có quyền ngang hàng admin thi ok. nhưng chạy trên user thi không được và báo lỗi:

    "Applicaltion attempted to perform an operation not allowed by the security policy. To grant this applicaltion the required permission, contact your administrator, or user the Microsoft .NET framework configuration tool
    if you click Continue,.....Quit....

    Requested registry access is not allowed"

    Các bạn nào có cách giải quyết dùm mình được không? nếu được mỉnh đưa code cho bạn xem nhe!

  9. #9
    Ngày gia nhập
    10 2007
    Nơi ở
    Gameloft studio
    Bài viết
    175

    Trích dẫn Nguyên bản được gửi bởi leanhit Xem bài viết

    "Applicaltion attempted to perform an operation not allowed by the security policy. To grant this applicaltion the required permission, contact your administrator, or user the Microsoft .NET framework configuration tool
    if you click Continue,.....Quit....

    Requested registry access is not allowed"
    Bạn nên đọc lại code, kiểm tra cấu hình, kiểm tra những thứ mà chương trình đụng vào hệ thống, sử dụng kỹ thuật try catch để bắt đoạn code không thể truy cập, search google để tìm cách thoát quyền này.
    Và nếu như không thể chạy nếu không có quyền tương đương admin, cái này có lẻ vượt ngoài khả năng của chương trình, bởi nhiều thứ không thể dùng code cấp quyền được.
    Không biết ghi gì luôn ...

  10. #10
    Ngày gia nhập
    06 2014
    Bài viết
    1

    Ai biết chỉ em viết đoạn code C# lấy phần cứng máy tính ví dụ như: CPU,RAM,HDD,NameComputer,Hệ điều hành,User, em xin cam ơn trước..
    link trên bị die rồi.. cho em xin link khác nha...hiii

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