English | 简体中文 | 繁體中文
查询

win32_query_service_status()函数—用法及示例

「 查询指定服务的当前状态 」


函数名称:win32_query_service_status()

适用版本:PHP 4 >= 4.1.0, PHP 5, PHP 7

函数说明:win32_query_service_status()函数用于查询指定服务的当前状态。

语法:bool win32_query_service_status( mixed $servicename, array &$status )

参数:

  • $servicename:要查询状态的服务名称。可以是服务的显示名称或服务的服务名称。
  • $status:用于存储服务状态信息的数组。函数执行成功后,该数组将包含以下键值对:
    • "ServiceType":服务类型(SERVICE_WIN32_OWN_PROCESS、SERVICE_WIN32_SHARE_PROCESS、SERVICE_KERNEL_DRIVER、SERVICE_FILE_SYSTEM_DRIVER、SERVICE_ADAPTER、SERVICE_RECOGNIZER_DRIVER)。
    • "CurrentState":服务当前状态(SERVICE_STOPPED、SERVICE_START_PENDING、SERVICE_STOP_PENDING、SERVICE_RUNNING、SERVICE_CONTINUE_PENDING、SERVICE_PAUSE_PENDING、SERVICE_PAUSED)。
    • "ControlsAccepted":服务接受的控制码(SERVICE_ACCEPT_STOP、SERVICE_ACCEPT_PAUSE_CONTINUE、SERVICE_ACCEPT_SHUTDOWN、SERVICE_ACCEPT_PARAMCHANGE、SERVICE_ACCEPT_NETBINDCHANGE、SERVICE_ACCEPT_HARDWAREPROFILECHANGE、SERVICE_ACCEPT_POWEREVENT、SERVICE_ACCEPT_SESSIONCHANGE、SERVICE_ACCEPT_PRESHUTDOWN、SERVICE_ACCEPT_TIMECHANGE、SERVICE_ACCEPT_TRIGGEREVENT)。
    • "Win32ExitCode":服务退出码(服务正常停止时为0)。
    • "ServiceSpecificExitCode":服务特定的退出码。
    • "CheckPoint":服务检查点。
    • "WaitHint":服务操作等待时间。

返回值:成功返回true,失败返回false。

示例:

<?php
$service = "MyService"; // 要查询状态的服务名称

$status = array(); // 用于存储服务状态信息的数组

if (win32_query_service_status($service, $status)) {
    echo "服务类型:" . $status['ServiceType'] . "<br>";
    echo "当前状态:" . $status['CurrentState'] . "<br>";
    echo "接受的控制码:" . $status['ControlsAccepted'] . "<br>";
    echo "退出码:" . $status['Win32ExitCode'] . "<br>";
    echo "服务特定的退出码:" . $status['ServiceSpecificExitCode'] . "<br>";
    echo "检查点:" . $status['CheckPoint'] . "<br>";
    echo "等待时间:" . $status['WaitHint'] . "<br>";
} else {
    echo "查询服务状态失败";
}
?>

注意:在使用win32_query_service_status()函数之前,需要确保已经加载了Win32扩展模块。

补充纠错
热门PHP函数
分享链接