This article describes an All-In-One Code Framework sample that is available for download. This sample includes a step-by-step guide about how to write Visual Basic.NET, Visual C++.NET, Visual Basic.NET, or Visual C# code to programmatically determine whether the operating system of the current computer or of a remote computer is a 64-bit operating system.
Solution 1. Use the IsWow64Process function to check the bitness of the running system.
If the running process is a 64-bit process, the current operating system must be a 64-bit operating system.
If the running process is a 32-bit process, you can use the IsWow64Process function to check whether the current operating system is a 64-bit operating system or not.
Solution 2. Use the AddressWidth property of the WMI class Win32_Processor to query the bitness of the local or any remote systems.
The AddressWidth property of the WMI class Win32_Processor dictates the current operating mode of the processor. On a 32-bit operating system, Win32_Processor.AddressWidth would be 32; on a 64-bit operating system, Win32_Processor.AddressWidth would be 64.
The OSArchitecture property of the WMI class Win32_OperatingSystem can also tell the bitness of OS, but the property is only available on Windows Vista and newer operating systems.
NoteFor more information about how to create the sample application and how to deploy the sample application, see the Readme.txt file that is included in the download package.
Download information
To download this code sample, click the following link:Technical overview
The samples introduce two solutions of detecting programmatically whether you are running on a 64-bit operating system or not.Solution 1. Use the IsWow64Process function to check the bitness of the running system.
If the running process is a 64-bit process, the current operating system must be a 64-bit operating system.
#if defined(_WIN64)
return TRUE; // 64-bit programs run only on Win64
If the running process is a 32-bit process, you can use the IsWow64Process function to check whether the current operating system is a 64-bit operating system or not.
#elif defined(_WIN32)
// 32-bit programs run on both 32-bit and 64-bit Windows
BOOL f64bitOS = FALSE;
return ((DoesWin32MethodExist(L"kernel32.dll", "IsWow64Process") &&
IsWow64Process(GetCurrentProcess(), &f64bitOS)) && f64bitOS);
Solution 2. Use the AddressWidth property of the WMI class Win32_Processor to query the bitness of the local or any remote systems.
The AddressWidth property of the WMI class Win32_Processor dictates the current operating mode of the processor. On a 32-bit operating system, Win32_Processor.AddressWidth would be 32; on a 64-bit operating system, Win32_Processor.AddressWidth would be 64.
The OSArchitecture property of the WMI class Win32_OperatingSystem can also tell the bitness of OS, but the property is only available on Windows Vista and newer operating systems.
NoteFor more information about how to create the sample application and how to deploy the sample application, see the Readme.txt file that is included in the download package.
Technology category
- Windows Base
Languages
This code sample contains the following programming languages:Language | Project Name |
Visual C++ | CppCheckOSBitness |
Visual C# | CSCheckOSBitness |
Visual Basic.NET | VBCheckOSBitness |
Prerequisites
- This sample application was created by using Microsoft Visual Studio 2008 with Service Pack 1 installed.