Python: получите версию ОС окон и архитектуру

В первую очередь, я не думаю, что этим вопросом является дубликат
Обнаружьте ОС на 64 бита (окна) в Python
потому что, по моему скромному мнению, этому не полностью ответили.

Единственный приближающийся ответ:

Использовать sys.getwindowsversion() или существование PROGRAMFILES (X86) (if 'PROGRAMFILES(X86)' in os.environ)

Но:

  • Делает переменную среды окон PROGRAMFILES(X86) надежный? Я боюсь, что любой может создать его, даже если это не присутствует в системе.
  • Как использовать sys.getwindowsversion() для получения архитектуры?

Относительно sys.getwindowsversion():
Ссылка http://docs.python.org/library/sys.html#sys.getwindowsversion
приводит нас к http://msdn.microsoft.com/en-us/library/ms724451%28VS.85%29.aspx
но я не вижу ничего связанного с архитектурой (32bit/64bit).
Кроме того, элемент платформы в возвращенном кортеже, кажется, независим от архитектуры.

Одно последнее примечание: я ищу решение с помощью и python 2.5 и версии для Windows, запускающейся в Windows XP

Спасибо!

Править:
Соответствующая информация доступна здесь
http://msdn.microsoft.com/en-us/library/ms724340%28v=VS.85%29.aspx
но как я могу получить это с Python?

Edit2: На окна на 64 бита, с интерпретатором Python на 32 бита:

  • os.environ ["PROCESSOR_ARCHITECTURE"] возвраты
    • 'x86'
  • platform.architecture () возвраты
    • ('32 бита', 'WindowsPE')

6
задан Community 23 May 2017 в 11:48
поделиться

2 ответа

Эти переменные показывают текущий статус выполнения в windows:


@rem Test environment using this table:
@rem
@rem Environment Variable       32bit Native    64bit Native    WOW64
@rem PROCESSOR_ARCHITECTURE     x86             AMD64           x86
@rem PROCESSOR_ARCHITEW6432     undefined       undefined       AMD64
@rem
6
ответ дан 8 December 2019 в 03:52
поделиться

1 Другой вариант (опрос WMI для OsArchitecture):

Если вы установите pywin32 и python wmi модуль поверх, вы должны иметь возможность (но только в Windows Vista и выше!):

import wmi
c = wmi.WMI()
for os in c.Win32_OperatingSystem():
    print os.osarchitecture

2 В качестве альтернативы вы также можете использовать модуль _winreg , чтобы проверить наличие ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Wow6432Node под HKEY_LOCAL_MACHINE (предположительно только там в 64-битных версиях ОС) (без внешних зависимостей).

2
ответ дан 8 December 2019 в 03:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: