makck 发表于 2008-7-14 02:28:30

如何判断cpu是否双核?

找了很久都没有这方面的代码或资料,有这方面代码的,请分享一下,万分感激!!

[ 本帖最后由 makck 于 2008-7-14 15:08 编辑 ]

llztt 发表于 2008-7-14 09:27:51

自由天空的七猫做了个DLL, 可以AU3调用来判断
不过AU3调用相关API应该也可以实现的,去看看FREESKY的驱动解压源码吧

qop1830 发表于 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

skyfree 发表于 2008-7-14 10:48:16

如果是用于桌面环境下,楼上的WMI是可以的。

不过如果用于非桌面环境,例如系统部署环境,WMI的有效性不好讲了。我个人的方法是借助EVEREST生成的报告来判定的。

makck 发表于 2008-7-14 15:07:36

感谢各位热心人士提供线索,用了七猫开发的dll
问题已经得到解决,非常感谢.

lynfr8 发表于 2009-7-22 01:34:13

http://www.autoitx.com/forum.php?mod=viewthread&tid=3636&page=1&fromuid=1003#pid70694

寒星 发表于 2009-7-22 07:43:45

如何判断cpu是否双核?这个问题很有意思,收藏起来以备不时之需。

pusofalse 发表于 2009-7-22 10:27:24

Opt("ExpandEnvStrings", 1)
Msgbox(0, '', "%NUMBER_OF_PROCESSORS%")

afan 发表于 2009-7-22 11:45:22

学习各位前辈的经验

xiaoqiang 发表于 2009-7-24 11:54:05

继续学习中..............................................................

黑色de郁金香 发表于 2009-8-26 12:29:57

8楼经典,桌面和PE下测试OK,简单就是真理!

sensel 发表于 2009-8-27 23:22:15

8# pusofalse

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

pusofalse 发表于 2009-8-28 00:42:36

学习了。EnvGet可以直接获取变量值,原来我一直思维定向了。

黑色de郁金香 发表于 2009-8-29 11:50:18

发现新的问题了,在PE环境下%NUMBER_OF_PROCESSORS%环境变量可能不准确,我用一台cpu为AMD 5000+的双核机器测试这代码后发现 %NUMBER_OF_PROCESSORS% = 1,而实际应该是 2 才对。希望大家也进行一下测试。

sensel 发表于 2009-8-30 00:40:40

这跟系统核心有关。很多PE为了体积和兼容,放弃多核心支持。在这种PE系统里,你在任务管理器只能见到一个核心在运作。这种情况,不能只靠系统报告,需要动用EVEREST之类硬件检测工具。
页: [1] 2
查看完整版本: 如何判断cpu是否双核?