Как определить Windows Edition в Python с помощью Squish QT? - PullRequest
0 голосов
/ 27 октября 2011

Кто-нибудь знает, как определить Windows Edition ??

Например, для 32-разрядной и 64-разрядной версий Windows: - Windows XP Home / Professional - Windows Vista Business / Ultimate ... и т. Д. - Windows 7 Home Basic /Домашняя страница Premium / Professional / Ultimate ... и т. Д.

Интересно, можно ли получить эту информацию из реестра или Python API ??

Спасибо.

Ответы [ 2 ]

1 голос
/ 27 октября 2011
0 голосов
/ 02 ноября 2011

Если ctypes не работает (из-за 32 против 64 бит?), Этот хак должен:

def get_Windows_name():
    import subprocess, re
    o = subprocess.Popen('systeminfo', stdout=subprocess.PIPE).communicate()[0]
    try: o = str(o, "latin-1")  # Python 3+
    except: pass  
    return re.search("OS Name:\s*(.*)", o).group(1).strip()

print(get_Windows_name())

Или просто прочитайте реестр:

try: import winreg
except: import _winreg as winreg
with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\Microsoft\Windows NT\CurrentVersion") as key:
    print(winreg.QueryValueEx(key, "EditionID")[0])

Или используйте это:

from win32com.client import GetObject
wim = GetObject('winmgmts:')
print([o.Caption for o in wim.ExecQuery("Select * from Win32_OperatingSystem")][0])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...