C#判斷某個Windows服務是否處於運行狀態

C#判斷某個Windows服務是否處於運行狀態


直接上代碼:
定義方法:

#region 判斷某個Windows服務是否處於運行狀態

/// <summary>
/// 判斷某個Windows服務是否處於運行狀態
/// </summary>
/// <param name="serviceName">要判斷的Windows服務名稱</param>
/// <param name="serviceNameMaxLength">服務名稱字符串的最大匹配長度,比如mssqlserver的長度11,可能有的是mssqlserver2008,可以把這個參數指定爲16</param>
/// <returns>處於運行狀態返回true,否則返回false</returns>
public static bool ServiceIsRunning(string serviceName, int serviceNameMaxLength)
{
    bool result = false;
    System.ServiceProcess.ServiceController[] services = System.ServiceProcess.ServiceController.GetServices();
    foreach (System.ServiceProcess.ServiceController sc in services)
    {
        if (sc.ServiceName.ToLower().Contains(serviceName.ToLower()) && sc.ServiceName.Length < serviceNameMaxLength)
        {
            if (sc.Status.ToString().ToLower() == "running")
            {
                result = true;
                break;
            }
        }
    }
    return result;
}

#endregion

調用代碼,比如判斷SQLServer是否處於運行狀態

#region 先判斷mssqlserver服務是否啓動,如果沒有啓動則直接返回false

if (!Wongoing.Basic.WinCmdHelper.ServiceIsRunning("mssqlserver", 21))
{
    Console.WriteLine("mssqlserver服務未啓動!");
}

#endregion
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章