找回密码
 加入
搜索
查看: 8827|回复: 17

如何判断cpu是否双核?

[复制链接]
发表于 2008-7-14 02:28:30 | 显示全部楼层 |阅读模式
找了很久都没有这方面的代码或资料,有这方面代码的,请分享一下,万分感激!!

[ 本帖最后由 makck 于 2008-7-14 15:08 编辑 ]
发表于 2008-7-14 09:27:51 | 显示全部楼层
自由天空的七猫做了个DLL, 可以AU3调用来判断
不过AU3调用相关API应该也可以实现的,  去看看FREESKY的驱动解压源码吧
发表于 2008-7-14 09:51:24 | 显示全部楼层
生成器里的
; 生成于 AutoIt Scriptomatic

$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$colItems = ""
$strComputer = "localhost"

$Output=""
$Output = $Output & "Computer: " & $strComputer  & @CRLF
$Output = $Output & "==========================================" & @CRLF
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystemProcessor", "WQL", _
                                          $wbemFlagReturnImmediately + $wbemFlagForwardOnly)

If IsObj($colItems) then
   For $objItem In $colItems
      $Output = $Output & "GroupComponent: " & $objItem.GroupComponent & @CRLF
      $Output = $Output & "PartComponent: " & $objItem.PartComponent & @CRLF
      if Msgbox(1,"WMI Output",$Output) = 2 then ExitLoop
      $Output=""
   Next
Else
   Msgbox(0,"WMI 输出","No WMI Objects Found for class: " & "Win32_ComputerSystemProcessor" )
Endif
发表于 2008-7-14 10:48:16 | 显示全部楼层
如果是用于桌面环境下,楼上的WMI是可以的。

不过如果用于非桌面环境,例如系统部署环境,WMI的有效性不好讲了。我个人的方法是借助EVEREST生成的报告来判定的。
 楼主| 发表于 2008-7-14 15:07:36 | 显示全部楼层
感谢各位热心人士提供线索,用了七猫开发的dll
问题已经得到解决,非常感谢.
发表于 2009-7-22 01:34:13 | 显示全部楼层
发表于 2009-7-22 07:43:45 | 显示全部楼层
如何判断cpu是否双核?这个问题很有意思,收藏起来以备不时之需。
发表于 2009-7-22 10:27:24 | 显示全部楼层
Opt("ExpandEnvStrings", 1)
Msgbox(0, '', "%NUMBER_OF_PROCESSORS%")
发表于 2009-7-22 11:45:22 | 显示全部楼层
学习各位前辈的经验
发表于 2009-7-24 11:54:05 | 显示全部楼层
继续学习中..............................................................
发表于 2009-8-26 12:29:57 | 显示全部楼层
8楼经典,桌面和PE下测试OK,简单就是真理!
发表于 2009-8-27 23:22:15 | 显示全部楼层
8# pusofalse

这个办法不错,直接获取系统环境变量。简化一下:
Msgbox(0, '', EnvGet("NUMBER_OF_PROCESSORS"))

评分

参与人数 1金钱 +5 收起 理由
pusofalse + 5

查看全部评分

发表于 2009-8-28 00:42:36 | 显示全部楼层
学习了。EnvGet可以直接获取变量值,原来我一直思维定向了。
发表于 2009-8-29 11:50:18 | 显示全部楼层
发现新的问题了,在PE环境下%NUMBER_OF_PROCESSORS%环境变量可能不准确,我用一台cpu为AMD 5000+的双核机器测试这代码后发现 %NUMBER_OF_PROCESSORS% = 1,而实际应该是 2 才对。希望大家也进行一下测试。
发表于 2009-8-30 00:40:40 | 显示全部楼层
这跟系统核心有关。很多PE为了体积和兼容,放弃多核心支持。在这种PE系统里,你在任务管理器只能见到一个核心在运作。这种情况,不能只靠系统报告,需要动用EVEREST之类硬件检测工具。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-3 02:28 , Processed in 0.087597 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表