"Stregor" napisał:
Potrzebuję z wnętrza skryptu sprawdzić, z jaką wersją Windows
(obojętnie -
7, 8, czy 10) mam do czynienia - 32 czy 64-bitową. [...]
Niedawno miałem identyczny problem. W moim przypadku wystarczyło
sprawdzenie obecności katalogu C:\Program Files (x86)
Trudno to jednak nazwać mniej ordynarną metodą. Co do skuteczności to
chyba jeszcze nie widziałęm 64 bitowej instalacji bez tego katalogu.
https://support.microsoft.com/en-us/help/556009
Dotyczy strszych wersji Windows ;->
Sprawdziłem dzisiaj wartości w tym kluczu na kilku maszynach z procesorami
64-bitowymi:
Windows 7 32-bit:
Identifier REG_SZ x86 Family x Model y Stepping z
PlatformID REG_DWORD 0x00000010(16)
Windows 7 64-bit:
Identifier REG_SZ Intel64 Family x Model y Stepping z
PlatformID REG_DWORD 0x00000002(2)
Tu jest O.K., wygląda na to, że wystarczy sprawdzić wartość PlatformID.
Ale w Windows 10 już nie ma PlatformID:
Windows 10 32-bit:
Identifier REG_SZ x86 Family x Model y Stepping z
PlatformSpecificField1 REG_DWORD 0x00000002(2)
Windows 10 64-bit:
Identifier REG_SZ Intel64 Family x Model y Stepping z
PlatformSpecificField1 REG_DWORD 0x00000002(2)
PlatformSpecificField2 REG_BINARY 00 00 00 00
Mam nadzieję, że wystarczy sprawdzić początek wartości Identifier.
Swoją drogą - wyciąganie wersji systemu z klucza, w nazwie którego są
"HARDWARE" i "Processor" w dodatku z wartości określającej model procesora,
to jakiś wyższy stopień abstrakcji ;->
Dzięki.
JoteR
|