【问题标题】:Check the installation date of Windows XP检查 Windows XP 的安装日期
【发布时间】:2014-07-31 09:30:22
【问题描述】:

是否可以使用 Python 编程语言检查操作系统的安装时间?主要是对Windows XP平台感兴趣。我想知道python中是否有这样的API或任何技巧。

【问题讨论】:

    标签: python windows-xp-sp3


    【解决方案1】:

    这不是特定于 python 的,但您可以通过 systeminfo 和 find 命令找到它。

    >systeminfo | find /i "original"
    Original Install Date:     7/27/2011, 3:06:49 PM
    

    如果安装区域设置为英语,则字符串original 应用。

    您可以将其封装在 os.system 调用中

    >>> os.system("""systeminfo | find /i "original" """)
    Original Install Date:     7/27/2011, 3:06:49 PM
    

    【讨论】:

      【解决方案2】:

      使用 Windows 注册表:

      import _winreg as reg
      from datetime import datetime
      
      key = reg.OpenKey(reg.HKEY_LOCAL_MACHINE, r'SOFTWARE\Microsoft\Windows NT\CurrentVersion')
      secs = reg.QueryValueEx(key, 'InstallDate')[0] # This is stored as a UNIX timestamp
      date = datetime.fromtimestamp(secs)
      

      【讨论】:

      • FileNotFoundError:[WinError 2] The system can not find the file specified
      • @begueradj:检查注册表中是否存在该键。 (我没有安装 XP,但据说可以在其他地方使用)。
      • 你给我的路径在我的电脑上有效
      • 我在你写的'SOFTWARE\Microsoft\... 之前删除了'r',所以它现在对我有用。我将使用您的解决方案,因为它运行得更快,并且我可以使用变量中的日期来满足我的 Python 程序中的以后需要。感谢您的帮助。另外,我使用的是 Python-3.4.1。所以我不得不按照官方文档的要求将 _winreg 更改为 winreg。
      • @begueradj:啊。假设您使用的是 Python 2.x,我写了答案。
      【解决方案3】:

      你可以试试

      import os
      
      info = os.popen('cmd /k systeminfo | find "Original Install Date"').read();
      print info
      #Original Install Date:     5/12/2014, 9:06:04 AM
      

      我还没有研究subprocess 包,但它是推荐的选项。 os 会完成这项工作。

      【讨论】:

      • 我只会读取cmd /k systeminfo 的输出并在 Python 中解析它(循环遍历行并输出以“原始安装日期”开头的行)。你可以使用subprocess.check_output获取一个进程的所有输出。
      【解决方案4】:
      def getInstallDate():
        cache = os.popen2("SYSTEMINFO")
        info = cache[1].read()
        label = "Original Install Date:" 
        return info.split(label)[-1].split("\n")[0].strip()
      

      【讨论】:

        【解决方案5】:

        试试:

        import platform
        print platform.system(), platform.release()
        

        【讨论】:

        • >>> print platform.system(), platform.release() 输出Windows 7。
        • 这会打印出操作系统及其版本
        • >>> print platform.system(), platform.release() Linux 3.11.0-23-generic 没有日期信息
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-15
        • 2011-01-26
        • 2013-11-17
        • 1970-01-01
        • 1970-01-01
        • 2023-03-28
        • 1970-01-01
        相关资源
        最近更新 更多