您的位置:程序门 -> .net技术 -> c#



吐血奉献:c#获取硬盘编号、cpu编号及类型、内存大小及使用情况


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


吐血奉献:c#获取硬盘编号、cpu编号及类型、内存大小及使用情况[已结贴,结贴人:zhoufoxcn]
发表于:2007-03-21 10:37:43 楼主
如果利用c#获取系统有关环境和属性,这个也是在网上问得比较多的问题,不过大部分只有提问没有回答,最近正好想做有关方面的东西,整理了一下,提供给大家,希望能给大家提供参考意见:

首先需要定义几个结构(struct)   ,便于dllimport作为返回参数调用。以下是代码:
cpuinfo.cs

using   system;
using   system.configuration;
using   system.runtime.interopservices;

/**//**
  *   layoutkind.automatic:为了提高效率允许运行态对类型成员重新排序
  *   注意:永远不要使用这个选项来调用不受管辖的动态链接库函数。
  *   layoutkind.explicit:对每个域按照fieldoffset属性对类型成员排序
  *   layoutkind.sequential:对出现在受管辖类型定义地方的不受管辖内存中的类型成员进行排序。
  */
 
/**////   <summary>
///   定义cpu的信息结构
///   </summary>
[structlayout(layoutkind.sequential)]  
public   struct   cpuinfo
...{
        /**////   <summary>
        ///   oem   id
        ///   </summary>
        public   uint   dwoemid;
        /**////   <summary>
        ///   页面大小
        ///   </summary>
        public   uint   dwpagesize;
        public   uint   lpminimumapplicationaddress;
        public   uint   lpmaximumapplicationaddress;
        public   uint   dwactiveprocessormask;
        /**////   <summary>
        ///   cpu个数
        ///   </summary>
        public   uint   dwnumberofprocessors;
        /**////   <summary>
        ///   cpu类型
        ///   </summary>
        public   uint   dwprocessortype;
        public   uint   dwallocationgranularity;
        /**////   <summary>
        ///   cpu等级
        ///   </summary>
        public   uint   dwprocessorlevel;
        public   uint   dwprocessorrevision;  
}
memoryinfo.cs
using   system;
using   system.configuration;
using   system.runtime.interopservices;

/**//**
  *   layoutkind.automatic:为了提高效率允许运行态对类型成员重新排序
  *   注意:永远不要使用这个选项来调用不受管辖的动态链接库函数。
  *   layoutkind.explicit:对每个域按照fieldoffset属性对类型成员排序
  *   layoutkind.sequential:对出现在受管辖类型定义地方的不受管辖内存中的类型成员进行排序。
  */
/**////   <summary>
///   定义内存的信息结构
///   </summary>
[structlayout(layoutkind.sequential)]
public   struct   memoryinfo
...{
        /**////   <summary>
        ///  
        ///   </summary>
        public   uint   dwlength;
        /**////   <summary>
        ///   已经使用的内存
        ///   </summary>
        public   uint   dwmemoryload;
        /**////   <summary>
        ///   总物理内存大小
        ///   </summary>
        public   uint   dwtotalphys;
        /**////   <summary>
        ///   可用物理内存大小
        ///   </summary>
        public   uint   dwavailphys;
        /**////   <summary>
        ///   交换文件总大小
        ///   </summary>
        public   uint   dwtotalpagefile;
        /**////   <summary>
        ///   可用交换文件大小
        ///   </summary>
        public   uint   dwavailpagefile;
        /**////   <summary>
        ///   总虚拟内存大小
        ///   </summary>
        public   uint   dwtotalvirtual;
        /**////   <summary>
        ///   可用虚拟内存大小
        ///   </summary>
        public   uint   dwavailvirtual;
}
发表于:2007-03-21 10:38:271楼 得分:0
systemtimeinfo.cs
using   system;
using   system.configuration;
using   system.runtime.interopservices;

/**//**
  *   layoutkind.automatic:为了提高效率允许运行态对类型成员重新排序
  *   注意:永远不要使用这个选项来调用不受管辖的动态链接库函数。
  *   layoutkind.explicit:对每个域按照fieldoffset属性对类型成员排序
  *   layoutkind.sequential:对出现在受管辖类型定义地方的不受管辖内存中的类型成员进行排序。
  */
/**////   <summary>
///   定义系统时间的信息结构
///   </summary>
[structlayout(layoutkind.sequential)]  
public   struct   systemtimeinfo
...{
        /**////   <summary>
        ///   年
        ///   </summary>
        public   ushort   wyear;
        /**////   <summary>
        ///   月
        ///   </summary>
        public   ushort   wmonth;
        /**////   <summary>
        ///   星期
        ///   </summary>
        public   ushort   wdayofweek;
        /**////   <summary>
        ///   天
        ///   </summary>
        public   ushort   wday;
        /**////   <summary>
        ///   小时
        ///   </summary>
        public   ushort   whour;
        /**////   <summary>
        ///   分钟
        ///   </summary>
        public   ushort   wminute;
        /**////   <summary>
        ///   秒
        ///   </summary>
        public   ushort   wsecond;
        /**////   <summary>
        ///   毫秒
        ///   </summary>
        public   ushort   wmilliseconds;
}
另外还定义了一个调用类systeminfo.cs,代码如下:
using   system;
using   system.configuration;
using   system.runtime.interopservices;
using   system.management;
using   system.text;

/**////   <summary>
///   systeminfo   的摘要说明
///   </summary>
public   class   systeminfo
...{
        private   const   int   char_count   =   128;
        public   systeminfo()
        ...{
               
        }
        [dllimport( "kernel32 ")]
        private   static   extern   void   getwindowsdirectory(stringbuilder   windir,   int   count);

        [dllimport( "kernel32 ")]
        private   static   extern   void   getsystemdirectory(stringbuilder   sysdir,   int   count);

        [dllimport( "kernel32 ")]
        private   static   extern   void   getsysteminfo(ref   cpuinfo   cpuinfo);

        [dllimport( "kernel32 ")]
        private   static   extern   void   globalmemorystatus(ref   memoryinfo   meminfo);

        [dllimport( "kernel32 ")]
        private   static   extern   void   getsystemtime(ref   systemtimeinfo   sysinfo);

        /**////   <summary>
        ///   查询cpu编号
        ///   </summary>
        ///   <returns> </returns>
        public   string   getcpuid()
        ...{
                managementclass   mclass   =   new   managementclass( "win32_processor ");
                managementobjectcollection   moc   =   mclass.getinstances();
                string   cpuid=null;
                foreach   (managementobject   mo   in   moc)
                ...{
                        cpuid   =   mo.properties[ "processorid "].value.tostring();
                        break;
                }
                return   cpuid;
        }

        /**////   <summary>
        ///   查询硬盘编号
        ///   </summary>
        ///   <returns> </returns>
        public   string   getmainharddiskid()
        ...{
                managementobjectsearcher   searcher   =   new   managementobjectsearcher( "select   *   from   win32_physicalmedia ");
                string   harddiskid=null;
                foreach   (managementobject   mo   in   searcher.get())
                ...{
                        harddiskid   =   mo[ "serialnumber "].tostring().trim();
                        break;
                }
                return   harddiskid;  
        }

        /**////   <summary>
        ///   获取windows目录
        ///   </summary>
        ///   <returns> </returns>
        public   string   getwindirectory()
        ...{
                stringbuilder   sbuilder   =   new   stringbuilder(char_count);
                getwindowsdirectory(sbuilder,   char_count);
                return   sbuilder.tostring();
        }

        /**////   <summary>
        ///   获取系统目录
        ///   </summary>
        ///   <returns> </returns>
        public   string   getsysdirectory()
        ...{
                stringbuilder   sbuilder   =   new   stringbuilder(char_count);
                getsystemdirectory(sbuilder,   char_count);
                return   sbuilder.tostring();
        }

      /**////   <summary>
      ///   获取cpu信息
      ///   </summary>
      ///   <returns> </returns>
        public   cpuinfo   getcpuinfo()
        ...{
                cpuinfo   cpuinfo   =   new   cpuinfo();
                getsysteminfo(ref   cpuinfo);
                return   cpuinfo;
        }

        /**////   <summary>
        ///   获取系统内存信息
        ///   </summary>
        ///   <returns> </returns>
        public   memoryinfo   getmemoryinfo()
        ...{
                memoryinfo   memoryinfo   =   new   memoryinfo();
                globalmemorystatus(ref   memoryinfo);
                return   memoryinfo;
        }

        /**////   <summary>
        ///   获取系统时间信息
        ///   </summary>
        ///   <returns> </returns>
        public   systemtimeinfo   getsystemtimeinfo()
        ...{
                systemtimeinfo   systemtimeinfo   =   new   systemtimeinfo();
                getsystemtime(ref   systemtimeinfo);
                return   systemtimeinfo;
        }

        /**////   <summary>
        ///   获取系统名称
        ///   </summary>
        ///   <returns> </returns>
        public   string   getoperationsysteminname()
        ...{
                operatingsystem   os   =   system.environment.osversion;
                string   osname   =   "unknown ";
                switch   (os.platform)
                ...{
                        case   platformid.win32windows:
                                switch   (os.version.minor)
                                ...{
                                        case   0:   osname   =   "windows   95 ";   break;
                                        case   10:   osname   =   "windows   98 ";   break;
                                        case   90:   osname   =   "windows   me ";   break;
                                }
                                break;
                        case   platformid.win32nt:
                                switch   (os.version.major)
                                ...{
                                        case   3:   osname   =   "windws   nt   3.51 ";   break;
                                        case   4:   osname   =   "windows   nt   4 ";   break;
                                        case   5:   if   (os.version.minor   ==   0)
                                                ...{
                                                        osname   =   "windows   2000 ";  
                                                }
                                                else   if   (os.version.minor   ==   1)
                                                ...{
                                                        osname   =   "windows   xp ";  
                                                }
                                                else   if   (os.version.minor   ==   2)
                                                ...{
                                                        osname   =   "windows   server   2003 ";  
                                                }
                                                break;
                                        case   6:   osname   =   "longhorn ";   break;
                                }
                                break;
                }
                return   string.format( "{0},{1} ",   osname,   os.version.tostring());
        }
}
发表于:2007-03-21 10:39:272楼 得分:0
以下是调用实例,为了简单,我在一个aspx页面中输出,不过这个程序可以在winform中调用:
using   system;
using   system.data;
using   system.configuration;
using   system.collections;
using   system.collections.specialized;
using   system.web;
using   system.web.security;
using   system.web.ui;
using   system.web.ui.webcontrols;
using   system.web.ui.webcontrols.webparts;
using   system.web.ui.htmlcontrols;
using   system.runtime.interopservices;

public   partial   class   index   :   system.web.ui.page
...{
        protected   void   page_load(object   sender,   eventargs   e)
        ...{
                if   (!page.ispostback)
                ...{
                        systeminfo   systeminfo   =   new   systeminfo();
                          response.write( "操作系统: "   +   systeminfo.getoperationsysteminname()   +   " <br> ");
                        response.write( "cpu编号: "+systeminfo.getcpuid()   +   " <br> ");
                        response.write( "硬盘编号: "+systeminfo.getmainharddiskid()   +   " <br> ");
                        response.write( "windows目录所在位置: "   +   systeminfo.getsysdirectory()   +   " <br> ");
                        response.write( "系统目录所在位置: "   +   systeminfo.getwindirectory()   +   " <br> ");
                        memoryinfo   memoryinfo   =   systeminfo.getmemoryinfo();
                        cpuinfo   cpuinfo   =   systeminfo.getcpuinfo();
                        response.write( "dwactiveprocessormask "   +   cpuinfo.dwactiveprocessormask   +   " <br> ");
                        response.write( "dwallocationgranularity "   +   cpuinfo.dwallocationgranularity   +   " <br> ");
                        response.write( "cpu个数: "   +   cpuinfo.dwnumberofprocessors   +   " <br> ");
                        response.write( "oem   id: "   +   cpuinfo.dwoemid   +   " <br> ");
                        response.write( "页面大小 "   +   cpuinfo.dwpagesize   +   " <br> ");
                        response.write( "cpu等级 "   +   cpuinfo.dwprocessorlevel   +   " <br> ");
                        response.write( "dwprocessorrevision "   +   cpuinfo.dwprocessorrevision   +   " <br> ");
                        response.write( "cpu类型 "   +   cpuinfo.dwprocessortype   +   " <br> ");
                        response.write( "lpmaximumapplicationaddress "   +   cpuinfo.lpmaximumapplicationaddress   +   " <br> ");
                        response.write( "lpminimumapplicationaddress "   +   cpuinfo.lpminimumapplicationaddress   +   " <br> ");
                        response.write( "cpu类型: "   +   cpuinfo.dwprocessortype   +   " <br> ");
                        response.write( "可用交换文件大小: "   +   memoryinfo.dwavailpagefile   +   " <br> ");
                        response.write( "可用物理内存大小: "   +   memoryinfo.dwavailphys   +   " <br> ");
                        response.write( "可用虚拟内存大小 "   +   memoryinfo.dwavailvirtual   +   " <br> ");
                        response.write( "操作系统位数: "   +   memoryinfo.dwlength   +   " <br> ");
                        response.write( "已经使用内存大小: "   +   memoryinfo.dwmemoryload   +   " <br> ");
                        response.write( "交换文件总大小: "   +   memoryinfo.dwtotalpagefile   +   " <br> ");
                        response.write( "总物理内存大小: "   +   memoryinfo.dwtotalphys   +   " <br> ");
                        response.write( "总虚拟内存大小: "   +   memoryinfo.dwtotalvirtual   +   " <br> ");
                }
        }
}
说明:前台aspx页面没有任何控件。

------------------------------------------
完整内容请见:
http://blog.csdn.net/zhoufoxcn/archive/2007/03/20/1534949.aspx
发表于:2007-03-21 10:41:143楼 得分:1
不错   ..
发表于:2007-03-21 10:44:464楼 得分:1
发表于:2007-03-21 10:45:465楼 得分:1
mark
发表于:2007-03-21 10:47:386楼 得分:1
前几天看到一个用vb.net的,终于看到c#的了。
不知道c#有没有不用api的~~~~贪心呀:)
发表于:2007-03-21 11:09:357楼 得分:1
发表于:2007-03-21 11:14:298楼 得分:0
发表于:2007-03-21 11:23:079楼 得分:0
刚好要写,顺手收下,不用到处翻了,up
发表于:2007-03-21 11:24:3610楼 得分:0
mk
发表于:2007-03-21 11:30:5611楼 得分:0
支持楼主的精神!
发表于:2007-03-21 11:38:5812楼 得分:0
顶楼主!!mark
发表于:2007-03-21 11:47:3013楼 得分:0
up
发表于:2007-03-21 11:51:0214楼 得分:0
留个记号。。。。。。。。。。。。。
发表于:2007-03-21 11:59:2215楼 得分:0
不错   谢谢接分
发表于:2007-03-21 12:01:1416楼 得分:0
mark

thx   a   lot
发表于:2007-03-21 12:09:4117楼 得分:0
不顶对不起毛主席
发表于:2007-03-21 12:14:1218楼 得分:1
获取系统路径.net的方法
environment.systemdirectory;
environment.getfolderpath(environment.specialfolder.programfiles);
发表于:2007-03-21 12:39:4119楼 得分:0
收藏之
发表于:2007-03-21 12:45:2820楼 得分:0
mack
发表于:2007-03-21 12:46:0321楼 得分:0
收藏
发表于:2007-03-21 12:47:0922楼 得分:0
up
发表于:2007-03-21 13:00:4823楼 得分:0
顶了再看,发扬楼主精神.
发表于:2007-03-21 13:04:1424楼 得分:0
收藏
发表于:2007-03-21 13:13:5925楼 得分:0
收藏
发表于:2007-03-21 13:14:5526楼 得分:0
頂下收藏
发表于:2007-03-21 13:15:3927楼 得分:0
收之
发表于:2007-03-21 13:17:4428楼 得分:0
mark
发表于:2007-03-21 13:27:2129楼 得分:0
好不错,
支持,
发表于:2007-03-21 13:32:5330楼 得分:2
mark

楼主很厚道。大家很满意,后果很严重。
系统应该将     zhoufoxcn   (执子之手)     归入vip!!
将zhoufoxcn   (执子之手)的社会信用度提高9999999999%
允许zhoufoxcn   (执子之手)贷款不还
授予zhoufoxcn   (执子之手)国家英雄称号
奖励zhoufoxcn   (执子之手)北京三居室三套(位置自选)
。。。。。。
发表于:2007-03-21 13:33:2031楼 得分:0
挺好
发表于:2007-03-21 13:34:0532楼 得分:0
收藏
发表于:2007-03-21 13:36:3633楼 得分:0
这样的问题就吐血,以后程序员生崖楼主还得吐好多的血啊!
发表于:2007-03-21 13:37:2334楼 得分:0
mark一下
发表于:2007-03-21 13:45:1335楼 得分:0
严重收藏..并支持
发表于:2007-03-21 14:30:3036楼 得分:0
喷血收藏
发表于:2007-03-21 14:53:1637楼 得分:0
先吐,再收藏,再吐血
发表于:2007-03-21 15:09:3138楼 得分:0
楼主说的好啊,我顶啊!
发表于:2007-03-21 15:29:0139楼 得分:0
mark
发表于:2007-03-21 15:42:1740楼 得分:0
收下先
发表于:2007-03-21 15:50:5441楼 得分:0
搂住最好在一夜里面显示阿
发表于:2007-03-21 16:12:2242楼 得分:0
to   zswang(伴水清清)(专家门诊清洁工)   :
获取系统路径.net的方法
environment.systemdirectory;
environment.getfolderpath(environment.specialfolder.programfiles);
===============================================================
这种办法是最直接的,我平常也是用这种办法,这里不过是提出另一种办法供大家参考。
发表于:2007-03-21 16:15:1243楼 得分:0
to   netfx()   :

前几天看到一个用vb.net的,终于看到c#的了。
不知道c#有没有不用api的~~~~贪心呀:)
==================================

不用api的话用wmi应该可以实现类似的功能,正在研究中,已经小有收获。如果大有收获的话,我还会吐血奉献一次的:)
发表于:2007-03-21 16:16:5244楼 得分:0

收下先

发表于:2007-03-21 16:20:0345楼 得分:0
good!
发表于:2007-03-21 16:31:2846楼 得分:0
不错。
发表于:2007-03-21 16:46:5047楼 得分:0
mark
发表于:2007-03-21 17:02:4848楼 得分:0
mark
发表于:2007-03-21 17:11:4949楼 得分:0
up
发表于:2007-03-21 17:13:1050楼 得分:0
收到.
发表于:2007-03-21 17:35:0951楼 得分:0
3q
发表于:2007-03-21 18:00:0352楼 得分:0
mark
发表于:2007-03-21 18:03:4053楼 得分:0
mark,这个真是太好了。谢谢!
发表于:2007-03-21 20:14:4554楼 得分:0
收藏
发表于:2007-03-21 20:26:1655楼 得分:0
收藏
发表于:2007-03-21 20:33:0556楼 得分:0
挺严重的~~
没收了~~
发表于:2007-03-21 20:56:2657楼 得分:0
如果有用纯c#+.net类库而不用winapi写出来的我没有看到过,可能写不出来,写这方面的程序不如用c++
发表于:2007-03-21 21:07:0658楼 得分:0
mark
发表于:2007-03-21 21:21:3959楼 得分:0
不错   顶一下
发表于:2007-03-21 21:42:3260楼 得分:1
楼主多注意身体,不值得为这个吐血呀,人的生命可是只有一次。


桌面常伴,win32api大全~~~~~       使你不再吐血。。。
发表于:2007-03-21 21:52:1561楼 得分:0
good
发表于:2007-03-21 21:54:4262楼 得分:1
我想知道vista以后,看m$的介绍winfx里.
win32的api会逐渐消失.那么用什么编程系统基层的东西?这些c#并不擅长
用.netframwork的类库么?win32   api编程还能走多远.?
发表于:2007-03-21 22:17:2763楼 得分:0
先藏,后吐,再藏,再吐。
发表于:2007-03-21 22:19:0264楼 得分:0
刚好用上
发表于:2007-03-21 22:22:0765楼 得分:0
mark
发表于:2007-03-21 22:24:3666楼 得分:0
楼主,我要收藏你!
发表于:2007-03-21 22:45:3167楼 得分:0
谢谢楼主分享!
发表于:2007-03-21 22:57:0668楼 得分:2
采用wmi技术即可,没必要直接用api.
硬盘情况查阅;win32_diskdrive
内存情况查阅:win32_memoryarray
cpu情况查阅:win32_processor

简单示例   --   罗列本机cpu信息  
    //   processorinfo.cs
    //   author   by   yzl
   
    using   system;
    using   system.management;
   
    public   class   processorinfo
    {
    public   static   void   main(string[]   args)
    {
    managementclass   processorcls   =   new   managementclass( "win32_processor ");
   
    //   罗列cpu处理器的信息
    foreach(managementobject   processorobj   in   processorcls.getinstances())
    {
    console.writeline( "processor   id: "+processorobj[ "processorid "]);
    console.writeline( "processor   name: "   +   processorobj[ "name "]);
    console.writeline( "current   clock   speed: "   +   processorobj[ "currentclockspeed "]);
   
    }
    }
    }


详细请查阅:http://blog.csdn.net/yuzl32/archive/2007/03/12/1527384.aspx
发表于:2007-03-21 23:37:4469楼 得分:0
不顶还是人吗???
发表于:2007-03-22 00:13:3370楼 得分:0
顶顶顶
发表于:2007-03-22 00:18:5571楼 得分:2
看了后立刻注册顶你!
发表于:2007-03-22 08:37:3472楼 得分:0
发表于:2007-03-22 09:22:0173楼 得分:0
to   yuzl32(有酒醉):
我代表党中央、国务院感谢你!因为对wmi不熟悉(刚接触),所以还不太了解。
同时感谢各位xdjm的支持。
发表于:2007-03-22 09:43:3774楼 得分:0
mark
发表于:2007-03-22 10:21:4475楼 得分:0
牛..顶!!
发表于:2007-03-22 10:28:2676楼 得分:0
顶,学习一下
发表于:2007-03-22 10:32:2677楼 得分:0
mark
发表于:2007-03-22 10:36:0978楼 得分:0
mark!
发表于:2007-03-22 10:37:1879楼 得分:0
mark
发表于:2007-03-22 10:37:4780楼 得分:0
不错
发表于:2007-03-22 10:42:0481楼 得分:2
得到系统所有信息:

http://www.codeproject.com/cs/system/gethardwareinformation.asp
发表于:2007-03-22 10:44:3582楼 得分:0
发表于:2007-03-22 10:54:4983楼 得分:0
楼主好人
发表于:2007-03-22 11:05:3884楼 得分:0
收藏
发表于:2007-03-22 11:10:3985楼 得分:0
值得收藏,谢谢
发表于:2007-03-22 11:22:3786楼 得分:0
不顶不是人,顶了就是人!
发表于:2007-03-22 11:22:4287楼 得分:0
先收下   以后用就不用到处翻了
就不知道用的时候还找的到不...................建忘啊!!!
呵呵
发表于:2007-03-22 12:14:3888楼 得分:0
up
发表于:2007-03-22 12:21:2489楼 得分:0
好人啊,一定要顶
发表于:2007-03-22 12:23:0790楼 得分:0
感谢。。。
发表于:2007-03-22 12:26:4491楼 得分:0
mark
发表于:2007-03-22 12:32:0992楼 得分:0
不顶对不起共产党!
发表于:2007-03-22 12:51:2193楼 得分:0
不用这么麻烦吧,c#不用调api一样可以轻松获取这些机器码
发表于:2007-03-22 13:02:2594楼 得分:0
up一下
发表于:2007-03-22 13:05:1295楼 得分:0
mark
发表于:2007-03-22 13:08:0996楼 得分:0
mark   yixia
发表于:2007-03-22 13:09:5697楼 得分:0
good
发表于:2007-03-22 13:21:4598楼 得分:0
mark
发表于:2007-03-22 13:30:5199楼 得分:0
好象很多人都喜欢手动调用   api,在   .net   framework   下不用调用   api   也可以的吧,好象还更方便。     ---------菜鸟。
发表于:2007-03-22 13:39:40100楼 得分:0
up
发表于:2007-03-22 13:41:10101楼 得分:1
拜读大作,还想接点分,
发表于:2007-03-22 14:26:56102楼 得分:0
ding
发表于:2007-03-22 14:48:38103楼 得分:0
用wmi获取更方便。
发表于:2007-03-22 14:48:58104楼 得分:0
mark
发表于:2007-03-22 14:50:54105楼 得分:0
好!!!找了很久了,谢谢lz
发表于:2007-03-22 14:55:45106楼 得分:0
一般情况下采用wmi即可,但是wmi在iis里会有访问权限的问题(有部分硬件信息将会获取不到)
发表于:2007-03-22 15:09:59107楼 得分:0
mark
发表于:2007-03-22 15:12:06108楼 得分:0
只能得到服务器的信息
客户端的不行
发表于:2007-03-22 15:14:09109楼 得分:0
顶下!学习ing...
发表于:2007-03-22 15:32:51110楼 得分:0
收藏
謝謝樓主啦!
发表于:2007-03-22 15:49:15111楼 得分:0
mark一个!
留等以后需要之用!
楼主,谢了!辛苦了!
发表于:2007-03-22 16:20:02112楼 得分:0
大量失血中......
发表于:2007-03-22 16:30:32113楼 得分:0
多谢!
发表于:2007-03-22 16:36:25114楼 得分:0
mark!!
发表于:2007-03-22 16:47:58115楼 得分:0
支持!!!
发表于:2007-03-22 16:51:59116楼 得分:0
mark
发表于:2007-03-22 17:13:13117楼 得分:0
支持!!!
发表于:2007-03-22 18:00:07118楼 得分:0
牛人
发表于:2007-03-22 18:59:55119楼 得分:0
收藏
发表于:2007-03-22 19:11:30120楼 得分:0
谢谢分享
发表于:2007-03-22 21:18:15121楼 得分:0
收藏中ing!   谢谢兄弟了!
发表于:2007-03-22 21:59:55122楼 得分:0
马克
发表于:2007-03-22 22:08:27123楼 得分:0
收藏中
发表于:2007-03-22 22:41:50124楼 得分:0
怎么using   system.management;
using   system.web.ui.webcontrols.webparts;
系统识别不了啊
发表于:2007-03-22 23:24:04125楼 得分:0
谢谢
收藏了~~
发表于:2007-03-23 00:04:28126楼 得分:0
连我这个还没开始学c#的都顶你。
发表于:2007-03-23 00:15:06127楼 得分:0
up
发表于:2007-03-23 00:31:32128楼 得分:0
谢谢
发表于:2007-03-23 08:03:17129楼 得分:0
感激!
发表于:2007-03-23 08:15:30130楼 得分:0
就算你不是女的也要顶~~~~
发表于:2007-03-23 08:21:46131楼 得分:0
mark!
发表于:2007-03-23 08:40:11132楼 得分:0
mark
发表于:2007-03-23 08:42:54133楼 得分:1
很有参考价值
发表于:2007-03-23 08:54:08134楼 得分:0
mark
发表于:2007-03-23 09:00:27135楼 得分:0
亲之........
发表于:2007-03-23 09:02:17136楼 得分:1
顶!支持楼主这样乐于奉献的牛人!
不像有些人,抱着一点破技术不肯放。
(正在学习asp.net中…………)
发表于:2007-03-23 09:03:23137楼 得分:0
不错     都是高手   收藏了
发表于:2007-03-23 09:08:48138楼 得分:0
mark
发表于:2007-03-23 09:11:33139楼 得分:0
做个记号,谢谢楼主
发表于:2007-03-23 09:11:33140楼 得分:0
雁过留声,人过留言
发表于:2007-03-23 09:14:33141楼 得分:0
楼主辛苦了
发表于:2007-03-23 09:28:42142楼 得分:0
发表于:2007-03-23 10:16:20143楼 得分:0
好牛
发表于:2007-03-23 10:32:35144楼 得分:0
大好牛
发表于:2007-03-23 10:50:36145楼 得分:0
不错
发表于:2007-03-23 10:52:49146楼 得分:0
to   henry_woa():
关于using   system.management的问题,你需要手动添加system.management.dll的引用,否则会出错。

另外,这个方法是有一些不全面的地方,我也算是抛砖引玉,希望大家有好的办法(不管解决这个问题的还是别的问题的)都拿出来共同参考,不要你自己知道了不肯告诉别人。
发表于:2007-03-23 12:21:05147楼 得分:0
顶。谢谢lz
发表于:2007-03-23 12:39:25148楼 得分:0
厚道
发表于:2007-03-23 13:02:55149楼 得分:1
昨天夜里写的,大家捧场啊。
c#精髓   第二讲   wmi完美秀出cpu编号厂商主频电压等全部信息
http://blog.csdn.net/21aspnet/archive/2007/03/23/1538136.aspx


和“主  题:     吐血奉献:c#获取硬盘编号、cpu编号及类型、内存大小及使用情况    
作  者:     zhoufoxcn   (执子之手)       ”正好结合   ,一个是调win32api一个调wmi

http://community.csdn.net/expert/topic/5409/5409478.xml?temp=.177685
发表于:2007-03-23 13:09:07150楼 得分:0
c#精髓   第二讲   wmi完美秀出cpu编号厂商主频电压等全部信息
实现了:
获取cpu编号;
获取计算机cpu的当前电压;
获取计算机cpu的外部频率;
获取计算机cpu的二级缓存;
获取计算机cpu的制造商名称;
获取计算机cpu的产品名称;
获取计算机cpu的版本信息;
获取计算机cpu的当前使用百分比;
获取计算机cpu的最大时钟频率;
获取计算机cpu的当前时钟频率;
获取计算机的cpu地址宽度;
获取计算机的cpu数据宽度;

请关注
http://blog.csdn.net/21aspnet/archive/2007/03/23/1538136.aspx
发表于:2007-03-23 13:44:13151楼 得分:0
mark
发表于:2007-03-23 15:37:23152楼 得分:0
真tmd好     不顶不行啊
发表于:2007-03-23 15:47:40153楼 得分:0
樓主的代碼終於可以運行了。首先表示感謝!
可問題來了:
1、本地編譯運行時,硬盤編號為:5lr515zp;發布后運行硬盤編號是空的;請問是什么原因?
2、cpu個數:2個;實際只有一個,是不是因為我的cpu是雙核的啊?
发表于:2007-03-23 16:00:20154楼 得分:0
to   rockyljt(江濤):
1、在网站上运行,有可能因为权限原因,出现一些不能获得相关信息的情况。
2、双核好像一般通过程序检验的时候就是按照2个cpu来算的。