- Wie lässt sich die Windows-Version ermitteln? WinXP, Vista oder 7 usw.
- 32 oder 64 Bit?
UPD: für .Net 2.0 - 3.5
UPD: für .Net 2.0 - 3.5
Sie suchen nach dem Environment.OSVersion
, Environment.Is64BitProcess
y Environment.Is64BitOperatingSystem
Eigenschaften.
Vor .Net 4.0 können Sie prüfen, ob die Prozess 64-Bit ist, indem geprüft wird, ob IntPtr.Size
es 8
und Sie können überprüfen, ob das Betriebssystem 64-Bit ist, indem Sie dieser Code :
public static bool Is64BitProcess
{
get { return IntPtr.Size == 8; }
}
public static bool Is64BitOperatingSystem
{
get
{
// Clearly if this is a 64-bit process we must be on a 64-bit OS.
if (Is64BitProcess)
return true;
// Ok, so we are a 32-bit process, but is the OS 64-bit?
// If we are running under Wow64 than the OS is 64-bit.
bool isWow64;
return ModuleContainsFunction("kernel32.dll", "IsWow64Process") && IsWow64Process(GetCurrentProcess(), out isWow64) && isWow64;
}
}
static bool ModuleContainsFunction(string moduleName, string methodName)
{
IntPtr hModule = GetModuleHandle(moduleName);
if (hModule != IntPtr.Zero)
return GetProcAddress(hModule, methodName) != IntPtr.Zero;
return false;
}
[DllImport("kernel32.dll", SetLastError=true)]
[return:MarshalAs(UnmanagedType.Bool)]
extern static bool IsWow64Process(IntPtr hProcess, [MarshalAs(UnmanagedType.Bool)] out bool isWow64);
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError=true)]
extern static IntPtr GetCurrentProcess();
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
extern static IntPtr GetModuleHandle(string moduleName);
[DllImport("kernel32.dll", CharSet = CharSet.Ansi, SetLastError=true)]
extern static IntPtr GetProcAddress(IntPtr hModule, string methodName);
Sie könnten Folgendes tun
System.OperatingSystem osInfo = System.Environment.OSVersion;
Werfen Sie einen Blick auf este .
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.