Vb6 如何列出多核处理器(带WMI)中的所有CPU ID?
我使用下面的vb6代码获取当前运行的cpu idVb6 如何列出多核处理器(带WMI)中的所有CPU ID?,vb6,cpu,processor,Vb6,Cpu,Processor,我使用下面的vb6代码获取当前运行的cpu id Dim CpuId As String Dim objWMIService, colItems, objItem Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor") For Each obj
Dim CpuId As String
Dim objWMIService, colItems, objItem
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor")
For Each objItem In colItems
CpuId = objItem.ProcessorId
Next
msgbox cpuid
这对于单cpu处理器来说效果很好。
但是现在很多计算机都有多处理器、双核、内核i3等。
如何列出所有现有的处理器ID
我正在使用处理器id为我的软件进行授权,当客户端计算机将处理器切换到我未注册的处理器时,授权机器将被声明为未授权。您使用的查询应获取机器上的所有物理处理器。如果您的软件确实安装在多处理器机器上,您可以始终注册所有处理器ID。否则,快速实验会在我的双核笔记本电脑上返回一个单处理器ID MSDN ProcessorID文档: 处理者
Data type: string
Access type: Read-only
Processor information that describes the processor features.
对于x86类CPU,字段格式取决于
CPUID指令。如果支持该指令,则属性
包含2(两)个DWORD格式的值。第一个是偏移量
08h-0Bh,这是CPUID指令返回的EAX值
输入EAX设置为1。第二个是0Ch-0Fh的偏移量,这是
指令返回的EDX值。只有前两个字节的
属性是重要的,包含DX的内容
CPU复位时的寄存器所有其他设置为0(零),并且内容
是DWORD格式的
结果:
如果您还没有,可以在这里找到Win23_处理器类文档 我希望每个物理处理器有一个CPU ID。我不希望看到每个核心都有一个。您只能找到一个处理器中的内核数(请参阅)。我不希望看到每个内核都有一个。。。我可能错了,但显然cpu id在多核场景中确实会发生变化。然后我必须等待客户打电话给我,以便为他们注册另一个cpu-id。我希望有经验的人能为我澄清。我对此表示感谢。唯一的问题是,除了笔记本电脑中显示的BFEBFBFF000010676之外,还有另一个处理器ID。我希望有一个代码或某种方式从一开始就知道处理器id是什么。问题是我们如何循环另一个处理器?@webzy我相信你错了。它似乎是1个处理器,具有1个ID和2个(在本例中)内核。谢谢。我的多个ID的来源似乎来自另一个来源。。。。读取磁盘驱动器id以生成复合id…“从Win32_physicalMedia中选择*”。你的回答帮助我更好地检查我的编码。
Private Sub GetInformation()
Dim CpuId As String
Dim objWMIService, colItems, objItem
List1.Clear
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor")
'this loop runs once for each physical processor
For Each objItem In colItems
List1.AddItem "Processor description: " & objItem.Description
List1.AddItem "Processor name: " & objItem.Name
List1.AddItem "Processor ID: " & objItem.ProcessorId
List1.AddItem "Device ID: " & objItem.DeviceID
List1.AddItem "Unique ID: " & objItem.UniqueId
List1.AddItem "Number of cores: " & objItem.NumberOfCores
List1.AddItem "Number if Logical processors: " & objItem.NumberOfLogicalProcessors
Next
End Sub