The query you're using should get all the physical processors on the machine. If your software is truly installed on a multi-processor machine you could always register all processor IDs. Otherwise a quick experiment returns a single processor ID on my dual core laptop.
MSDN ProcessorID documentation:
ProcessorId
Data type: string
Access type: Read-only
Processor information that describes the processor features.
For an x86 class CPU, the field format depends on the processor support of
the CPUID instruction. If the instruction is supported, the property
contains 2 (two) DWORD formatted values. The first is an offset of
08h-0Bh, which is the EAX value that a CPUID instruction returns with
input EAX set to 1. The second is an offset of 0Ch-0Fh, which is the
EDX value that the instruction returns. Only the first two bytes of
the property are significant and contain the contents of the DX
register at CPU reset—all others are set to 0 (zero), and the contents
are in DWORD format.
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
Result:

If you don't already have it, the Win23_Processor class documentation can be found here. http://msdn.microsoft.com/en-us/library/aa394373%28VS.85%29.aspx
NumberOfCoresproperty).