OSが32ビットまたは64ビットで、プロセッサが32ビットまたは64ビットであることをvb6コードで確認したいので、これらのコードを取得するのを手伝ってください。vb.net では Environment.Is64BitOperatingSystem プロパティを使用でき、.net 4.0 以降でのみ機能します。しかし、これらの情報をvb6で取得するにはどうすればよいですか?
質問する
10109 次
5 に答える
3
CPU については、WMI を使用して AddressWidth を取得できます。VBScript のサンプルは、ここにあります。
于 2013-04-02T14:00:14.127 に答える
1
オペレーティング システムのアーキテクチャ
それを取得する 1 つの方法は、GetNativeSystemInfo
WinAPI 関数を使用することです。リンクされた質問でカバーされています。
同様の方法で両方の目標を達成したい場合は、OS アーキテクチャも WMI から取得できます。Windows Vista 以降のオペレーティング システムではWin32_OperatingSystem
、クラスをクエリしてプロパティを分析できますOSArchitecture
( MSDN )。残念ながら、このプロパティは Windows XP 以前のバージョンには存在しません。これらのシステムでは、代わりにクラスをクエリしてプロパティWin32_ComputerSystem
を分析できます ( MSDN )。SystemType
Public Function GetOsArchitecture()
If IsAtLeastVista Then
GetOsArchitecture = GetVistaOsArchitecture
Else
GetOsArchitecture = GetXpOsArchitecture
End If
End Function
Private Function IsAtLeastVista() As Boolean
IsAtLeastVista = GetOsVersion >= "6.0"
End Function
Private Function GetOsVersion() As String
Dim OperatingSystemSet As Object
Dim OS As Object
Set OperatingSystemSet = GetObject("winmgmts:{impersonationLevel=impersonate}"). _
InstancesOf("Win32_OperatingSystem")
For Each OS In OperatingSystemSet
GetOsVersion = Left$(Trim$(OS.Version), 3)
Next
End Function
Private Function GetVistaOsArchitecture() As String
Dim OperatingSystemSet As Object
Dim OS As Object
Set OperatingSystemSet = GetObject("Winmgmts:"). _
ExecQuery("SELECT * FROM Win32_OperatingSystem")
For Each OS In OperatingSystemSet
GetVistaOsArchitecture = Left$(Trim$(OS.OSArchitecture), 2)
Next
End Function
Private Function GetXpOsArchitecture() As String
Dim ComputerSystemSet As Object
Dim Computer As Object
Dim SystemType As String
Set ComputerSystemSet = GetObject("Winmgmts:"). _
ExecQuery("SELECT * FROM Win32_ComputerSystem")
For Each Computer In ComputerSystemSet
SystemType = UCase$(Left$(Trim$(Computer.SystemType), 3))
Next
GetXpOsArchitecture = IIf(SystemType = "X86", "32", "64")
End Function
于 2013-04-05T21:17:55.567 に答える
1
DataWidth
WMI クラスのまたはAddressWidth
プロパティを試すことができますWin32_Processor
。32 ビット プロセッサでは値は 32 で、64 ビット プロセッサでは 64 です。
于 2013-04-02T16:30:09.503 に答える