【问题标题】:Python win32serviceutil QueryServiceStatus: What does the return value mean?Python win32serviceutil QueryServiceStatus:返回值是什么意思?
【发布时间】:2019-03-23 07:58:46
【问题描述】:

我正在学习使用 pywin32,并尝试在 64 位 Python 3.6.4 上使用 win32serviceutil 模块

以下代码:

import win32serviceutil as service
serviceStatus = service.QueryServiceStatus("WinDefend")
print(serviceStatus)

返回以下元组:

(16, 4, 197, 0, 0, 0, 0)

我对 windows api 和 pywin32 完全陌生,这 6 个值是什么意思?任何关于 pywin32 和 win32 的文档都没有透露任何内容。

编辑 - 我正在运行 Windows 10

【问题讨论】:

    标签: python winapi pywin32


    【解决方案1】:

    你有SERVICE_STATUS结构

    具体值意味着下一个:

    dwServiceType=SERVICE_WIN32_OWN_PROCESS(16)
    dwCurrentState=SERVICE_RUNNING(4)
    dwControlsAccepted=SERVICE_ACCEPT_SESSIONCHANGE|SERVICE_ACCEPT_POWEREVENT|SERVICE_ACCEPT_SHUTDOWN|SERVICE_ACCEPT_STOP (0xc5==197)
    dwWin32ExitCode=NO_ERROR (0)
    dwServiceSpecificExitCode=0 // This value is ignored because dwWin32ExitCode != ERROR_SERVICE_SPECIFIC_ERROR.
    dwCheckPoint=0
    dwWaitHint=0
    

    【讨论】:

      【解决方案2】:

      win32serviceutil[GitHub]: mhammond/pywin32 - Python for Windows (pywin32) Extensions 的一部分,[GitHub]: mhammond/pywin32 - Python for Windows (pywin32) ExtensionsWINAPI 之上的 Python 包装器。

      • [ActiveState.Docs]: win32service.QueryServiceStatus(这是我能找到的最接近的官方 PyWin32 文档)是 [MS.Docs]: QueryServiceStatus function 的包装器并返回 [ActiveState.Docs]: SERVICE_STATUS Object(元组)

        Items:
        [0] int : serviceType
                The type of service.
        [1] int : serviceState
                The current state of the service.
        [2] int : controlsAccepted
                The controls the service accepts.
        [3] int : win32ExitCode
                The win32 error code for the service.
        [4] int : serviceSpecificErrorCode
                The service specific error code.
        [5] int : checkPoint
                The checkpoint reported by the service.
        [6] int : waitHint
                The wait hint reported by the service.
        
      • win32serviceutil.QueryServiceStatus 是前一个的简写(它封装了所有其他涉及的调用:win32service.OpenSCManagerwin32service.OpenServicewin32service.CloseServiceHandle)并返回相同的内容

      【讨论】:

        猜你喜欢
        • 2013-04-25
        • 2014-05-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多