C# 怎么提取各种物理序列号?(CPU、硬盘、显卡等)

答非我问,我会检举!!!答非我问,我会检举!!!开发工具:VS005.net,语言:C#,数据库:Sqlserver2005我不要什么糟糕的资料,什么垃圾参考网站,什么去... 答非我问,我会检举!!!答非我问,我会检举!!!开发工具:VS005.net , 语言:C# , 数据库:Sql server 2005我不要什么糟糕的资料,什么垃圾参考网站,什么去百度上找,如果发现我一定检举!我只要能运行的程序!可以我还会加分!C# 怎么提取各种序列号?(CPU、硬盘、显卡等至少这三种)看清啊!物理序列号,像我机器硬盘是5JVXNBKQ,不是十六进制那个号,怎么能提出来,还有CPU的,还有网卡的MAC号! 展开
 我来答
翼帆
2011-07-27 · TA获得超过1729个赞
知道小有建树答主
回答量:819
采纳率:60%
帮助的人:520万
展开全部

第一步:请先在右侧的资源管理器,引用 那里,添加.Net引用,System.Management,这一步是必须的,否则会提示类有错误,很多新手在百度或者其它网站上查找的资料,忽略了这一步无法成功,以为是代码错误,引用System.Management之后,基本上网上的代码都差不多一样,都可以使用的。。

第二步:然后在程序中 using System.Management;

再使用下面的方法,即可。

以下是我自己项目中使用的代码,肯定可以使用。如果有错误,说明上面两步未操作成功。

        /// <summary>

        /// 取得设备网卡的MAC地址

        /// </summary>

        public static string GetNetCardMacAddress()

        {

            ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");

            ManagementObjectCollection moc = mc.GetInstances();

            string str = "";

            foreach (ManagementObject mo in moc)

            {

                if ((bool)mo["IPEnabled"] == true)

                    str = mo["MacAddress"].ToString();

            }

            return str;

        }

        /// <summary>

        /// 取得CPUID

        /// </summary>

        public static string cpuidstr()

        {

            ManagementClass mc = new ManagementClass("Win32_Processor");

            ManagementObjectCollection moc = mc.GetInstances();

            string strID = null;

            foreach (ManagementObject mo in moc)

            {

                strID = mo.Properties["ProcessorId"].Value.ToString();

                break;

            }

            return strID;

        }

        /// <summary>

        /// 获得盘符为drvID的硬盘序列号,缺省为C

        /// </summary>

        /// <param name="drvID"></param>

        public static string HDVal(string drvID)

        {

            const int MAX_FILENAME_LEN = 256;

            int retVal = 0;

            int a = 0;

            int b = 0;

            string str1 = null;

            string str2 = null;

            int i = GetVolumeInformation(

            drvID + @":\",

            str1,

            MAX_FILENAME_LEN,

            ref retVal,

            a,

            b,

            str2,

            MAX_FILENAME_LEN

            );

            return retVal.ToString();

        }

        public static string HDVal()

        {

            const int MAX_FILENAME_LEN = 256;

            int retVal = 0;

            int a = 0;

            int b = 0;

            string str1 = null;

            string str2 = null;

            int i = GetVolumeInformation(

            "c:\\",

            str1,

            MAX_FILENAME_LEN,

            ref retVal,

            a,

            b,

            str2,

            MAX_FILENAME_LEN

            );

            return retVal.ToString();

        }

huangzhilong52
2011-07-27 · TA获得超过384个赞
知道小有建树答主
回答量:622
采纳率:0%
帮助的人:339万
展开全部
1. private string[] GetMoc()
2. {
3. string[] str = new string[3];
4. ManagementClass mcCpu = new ManagementClass("win32_Processor");
5. ManagementObjectCollection mocCpu = mcCpu.GetInstances();
6. foreach(ManagementObject m in mocCpu)
7. {
8. str[0] = m["UniqueID"].ToString();
9. }
10.
11. ManagementClass mcHD = new ManagementClass("win32_logicaldisk");
12. ManagementObjectCollection mocHD = mcHD.GetInstances();
13. foreach(ManagementObject m in mocHD)
14. {
15. if(m["DeviceID"].ToString() == "C:")
16. {
17. str[1] = m["VolumeSerialNumber"].ToString();
18. break;
19. }
20. }
21.
22. ManagementClass mcMAC = new ManagementClass("Win32_NetworkAdapterConfiguration");
23. ManagementObjectCollection mocMAC = mcMAC.GetInstances();
24. foreach(ManagementObject m in mocMAC)
25. {
26. if((bool)m["IPEnabled"])
27. {
28. str[2] = m["MacAddress"].ToString();
29. break;
30. }
31. }
32.
33. return str;
34. }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wings_lee
2011-07-28 · 超过44用户采纳过TA的回答
知道小有建树答主
回答量:250
采纳率:0%
帮助的人:124万
展开全部
一楼二楼都回答啦,楼主分不清vs2005 和sqlsever 是干嘛的吗? 我那个汗啊,希望补习下基础知识。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式