国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C# 玩轉計算機系列(一)-操作系統服務

2019-11-17 03:07:39
字體:
來源:轉載
供稿:網友

C# 玩轉計算機系列(一)-操作系統服務

在平時的工作中經常會遇到檢測或設置系統服務的情況,一般來說我們主要會遇到以下幾種操作使用場景:

1、獲取系統所有服務

2、檢測某個服務狀態是否啟動

3、設置某個服務狀態:啟動、停止、暫停、恢復

4、獲取某個服務的狀態

所以比較方便的就是自己封裝一個類,可以隨心所欲的調用,不用每次都去編寫同樣的代碼。現在就自己遇到的情況,將操作系統服務的類實現:

系統服務類:systServiceMng

其實其核心是通過引用系統中的對應版本的System.ServicePRocess.dll(需要與你引用的項目框架版本一致),通過其中的ServiceController來映射到系統服務實例

提供了一些公用方法和屬性可以設置和獲取服務狀態。

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Collections;using System.ServiceProcess;///made by george///date:2014-05-30///QQ:709617880namespace systemServiceMng{       //設置操作枚舉類型    public enum opertType{ start,stop,pause,reStart };    public class systServiceMng    {                /// <summary>        /// 獲取系統所有服務對象        /// </summary>        /// <returns></returns>        public ArrayList getAllsystemServices() {            ArrayList arryServices = new ArrayList();            ServiceController[] services = ServiceController.GetServices();            foreach(ServiceController a in services){                arryServices.Add(a);            }            return arryServices;        }        /// <summary>        /// 獲取所有服務名,返回list        /// </summary>        /// <returns></returns>        public List<String> getAllServiceNames() {            List<String> listNames = new List<String>();            ServiceController[] services = ServiceController.GetServices();            foreach (ServiceController a in services)            {                listNames.Add(a.DisplayName);            }            return listNames;        }        /// <summary>        /// 設置指定服務        /// </summary>        /// <param name="serviceName">服務顯示名</param>        /// <param name="oper">操作類型</param>        /// <returns>true 設置成功,false設置失敗</returns>        public Boolean setService(string serviceName,opertType oper) {            Boolean isok = false;            ServiceController[] allServices = System.ServiceProcess.ServiceController.GetServices();            foreach (ServiceController sc in allServices)            {                if (sc.DisplayName.Trim() == serviceName.Trim())                {                    if (oper.ToString() == "start")                    {                        sc.Start();                        if (sc.Status.ToString() == "Running") isok = true;                    }                    if (oper.ToString() == "stop")                    {                        sc.Stop();                        if (sc.Status.ToString() == "Stopped") isok = true;                    }                    if (oper.ToString() == "pause")                    {                        sc.Pause();                        if (sc.Status.ToString() == "Pause") isok = true;                    }                    if (oper.ToString() == "reStart")                    {                        sc.Continue();                        if (sc.Status.ToString() == "Running") isok = true;                    }                }            }            return isok;        }        /// <summary>        /// 檢測服務狀態        /// </summary>        /// <param name="serviceName"></param>        /// <returns></returns>        public Boolean checkServiceIsRunning(string serviceName) {          ServiceController[] allServices = System.ServiceProcess.ServiceController.GetServices();         Boolean runing = false;         foreach (ServiceController sc in allServices)         {             if (sc.DisplayName.Trim() == serviceName.Trim())             {                 if (sc.Status.ToString() == "Running")                 {                     runing= true;                 }             }         }         return runing;        }        /// <summary>        /// 獲取服務狀態        /// </summary>        /// <param name="serviceName">服務顯示名</param>        /// <returns></returns>        public String getStatue(string serviceName) {          ServiceController[] allServices = System.ServiceProcess.ServiceController.GetServices();                 foreach (ServiceController sc in allServices)         {             if (sc.DisplayName.Trim() == serviceName.Trim())             {                 return sc.Status.ToString();             }         }         return "";        }    }}

注意:每一個服務有一個CanXXX的屬性如:CanStop,CanShouDown&hellip;…,在設置服務啟動、停止、暫停、恢復 前需要判斷該屬性是否可設置,否則會報錯。

可以寫一個簡單的winForm來操作系統服務,也是一個小工具,直接可以設置系統服務。

【下期預告】: C#玩轉計算機系列-操作IIS服務


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通化市| 余庆县| 如东县| 晋城| 沙坪坝区| 焦作市| 佛学| 玉林市| 娄烦县| 乌兰县| 乌兰察布市| 叶城县| 苗栗市| 桂阳县| 思南县| 威海市| 沭阳县| 安泽县| 玉田县| 拉孜县| 定陶县| 绩溪县| 无锡市| 盐津县| 乌拉特前旗| 理塘县| 巴马| 讷河市| 林口县| 弋阳县| 苍山县| 五大连池市| 涡阳县| 泗洪县| 龙游县| 宁夏| 嘉禾县| 新巴尔虎右旗| 深水埗区| 攀枝花市| 嘉荫县|