最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#對Windows服務(wù)組的啟動與停止操作

 更新時間:2018年03月23日 15:07:58   作者:馬洪彪  
這篇文章主要為大家詳細(xì)介紹了C#對Windows服務(wù)組的啟動與停止操作,具有一定的參考價值,感興趣的小伙伴們可以參考一下

Windows服務(wù)大家都不陌生,Windows服務(wù)組的概念,貌似MS并沒有這個說法。

作為一名軟件開發(fā)者,我們的機(jī)器上安裝有各種開發(fā)工具,伴隨著各種相關(guān)服務(wù)。

Visual Studio可以不打開,SqlServer Management Studio可以不打開,但是SqlServer服務(wù)卻默認(rèn)開啟了。下班后,我的計(jì)算機(jī)想用于生活、娛樂,不需要數(shù)據(jù)庫服務(wù)這些東西,尤其是在安裝了Oracle數(shù)據(jù)庫后,我感覺機(jī)器吃力的很。

每次開機(jī)后去依次關(guān)閉服務(wù),或者設(shè)置手動開啟模式,每次工作使用時依次去開啟服務(wù),都是一件很麻煩的事情。因此,我講這些相關(guān)服務(wù)進(jìn)行打包,打包為一個服務(wù)組的概念,并通過程序來實(shí)現(xiàn)服務(wù)的啟動和停止。

這樣我就可以設(shè)置SqlServer、Oracle、Vmware等的服務(wù)為手動開啟,然后在需要的時候選擇打開。

以上廢話為工具編寫背景,也是一個應(yīng)用場景描述,下邊附上代碼。

服務(wù)組的定義,我使用了INI配置文件,一個配置節(jié)為一個服務(wù)器組,配置節(jié)內(nèi)的Key、Value為服務(wù)描述和服務(wù)名稱。

配置內(nèi)容的先后決定了服務(wù)開啟的順序,因此類似Oracle這樣的對于服務(wù)開啟先后順序有要求的,要定義好服務(wù)組內(nèi)的先后順序。

Value值為服務(wù)名稱,服務(wù)名稱并非services.msc查看的名稱欄位的值,右鍵服務(wù),可以看到,顯示的名稱其實(shí)是服務(wù)的顯示名稱,這里需要的是服務(wù)名稱。

配置文件如下圖所示

注:INI文件格式:

[Section1]

key1=value1

key2=value2

程序啟動,主窗體加載,獲取配置節(jié),即服務(wù)組。

string path = Directory.GetCurrentDirectory() + "/config.ini";
 List<string> serviceGroups = INIHelper.GetAllSectionNames(path);
 cboServiceGroup.DataSource = serviceGroups;


其中的INI服務(wù)類,參考鏈接:C#操作INI文件的輔助類IniHelper

服務(wù)的啟動和停止,需要引入System.ServiceProcess程序集。

啟動服務(wù)組:

if (string.IsNullOrEmpty(cboServiceGroup.Text))
{
 MessageBox.Show("請選擇要操作的服務(wù)組");
 return;
}
//
string path = Directory.GetCurrentDirectory() + "/config.ini";
string section = cboServiceGroup.Text;
string[] keys;
string[] values;
INIHelper.GetAllKeyValues(section, out keys, out values, path);
//
foreach (string value in values)
{
 ServiceController sc = new ServiceController(value);
 //
 try
 {
  ServiceControllerStatus scs = sc.Status;
  if (scs != ServiceControllerStatus.Running)
  {
   try
   {
    sc.Start();
   }
   catch (Exception ex)
   {
    MessageBox.Show("服務(wù)啟動失敗\n" + ex.ToString());
   }
  }
 }
 catch (Exception ex)
 {
  MessageBox.Show("不存在服務(wù)" + value);
 }
 // 
}
//
MessageBox.Show("服務(wù)啟動完成");

停止服務(wù)組

if (string.IsNullOrEmpty(cboServiceGroup.Text))
{
 MessageBox.Show("請選擇要操作的服務(wù)組");
 return;
}
//
string path = Directory.GetCurrentDirectory() + "/config.ini";
string section = cboServiceGroup.Text;
string[] keys;
string[] values;
INIHelper.GetAllKeyValues(section, out keys, out values, path);
//
foreach (string value in values)
{
 ServiceController sc = new ServiceController(value);
 try
 {
  ServiceControllerStatus scs = sc.Status;
  if (scs != ServiceControllerStatus.Stopped)
  {
   try
   {
    sc.Stop();
   }
   catch (Exception ex)
   {
    MessageBox.Show("服務(wù)停止失敗\n" + ex.ToString());
   }
  }
 }
 catch (Exception ex)
 {
  MessageBox.Show("不存在服務(wù)" + value);
 }
 //

}
//
MessageBox.Show("服務(wù)停止完成");
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • unity實(shí)現(xiàn)UI元素跟隨3D物體

    unity實(shí)現(xiàn)UI元素跟隨3D物體

    這篇文章主要為大家詳細(xì)介紹了unity實(shí)現(xiàn)UI元素跟隨3D物體,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C#+無unsafe的非托管大數(shù)組示例詳解(large unmanaged array in c# without ‘unsafe’ keyword)

    C#+無unsafe的非托管大數(shù)組示例詳解(large unmanaged array in c# without ‘u

    這篇文章主要給大家介紹了關(guān)于C#+無unsafe的非托管大數(shù)組(large unmanaged array in c# without 'unsafe' keyword)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • C#利用GDI+繪制旋轉(zhuǎn)文字等效果實(shí)例

    C#利用GDI+繪制旋轉(zhuǎn)文字等效果實(shí)例

    這篇文章主要介紹了C#利用GDI+繪制旋轉(zhuǎn)文字等效果實(shí)例,是非常實(shí)用的重要技巧,需要的朋友可以參考下
    2014-09-09
  • C#網(wǎng)絡(luò)適配器簡單操作

    C#網(wǎng)絡(luò)適配器簡單操作

    這篇文章主要介紹了C#網(wǎng)絡(luò)適配器簡單操作,提供多種相關(guān)的輔助方法類,感興趣的小伙伴們可以參考一下
    2016-10-10
  • C#?如何使用批處理啟動Windows服務(wù)

    C#?如何使用批處理啟動Windows服務(wù)

    這篇文章主要介紹了C#使用批處理啟動Windows服務(wù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • Unity接入百度AI實(shí)現(xiàn)果蔬識別

    Unity接入百度AI實(shí)現(xiàn)果蔬識別

    本文將介紹如何利用Unity接入百度AI從而實(shí)現(xiàn)果蔬識別,可以做到識別近千種水果和蔬菜的名稱,可自定義返回識別結(jié)果數(shù)。感興趣的小伙伴可以了解一下
    2022-02-02
  • C#使用融合通信API發(fā)送手機(jī)短信功能

    C#使用融合通信API發(fā)送手機(jī)短信功能

    融合云通信服務(wù)平臺,為企業(yè)提供全方位通信服務(wù),發(fā)送手機(jī)短信是其一項(xiàng)核心功能,本文介紹了如何使用融合云通信服務(wù)平臺的API通過C#實(shí)現(xiàn)發(fā)送手機(jī)短信的功能,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • 淺析C#異步中的Overlapped是如何尋址的

    淺析C#異步中的Overlapped是如何尋址的

    用ReadAsync做文件異步讀取時,在Win32層面會傳lpOverlapped到內(nèi)核層,那在內(nèi)核層回頭時,它是如何通過這個lpOverlapped尋找到?ReadAsync這個異步的Task的呢,下面我們就來簡單分析一下吧
    2025-01-01
  • 在WPF中實(shí)現(xiàn)全局快捷鍵功能

    在WPF中實(shí)現(xiàn)全局快捷鍵功能

    這篇文章介紹了在WPF中實(shí)現(xiàn)全局快捷鍵功能的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C#數(shù)組排序的兩種常用方法

    C#數(shù)組排序的兩種常用方法

    這篇文章主要介紹了C#數(shù)組排序的兩種常用方法,實(shí)例分析了C#操作數(shù)組的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05

最新評論

汤阴县| 马鞍山市| 乌鲁木齐市| 兖州市| 锡林浩特市| 巴马| 开远市| 垣曲县| 长乐市| 睢宁县| 吉安市| 富锦市| 大同市| 镇沅| 安新县| 贵州省| 辉县市| 开封市| 乐陵市| 墨江| 抚州市| 哈巴河县| 施秉县| 当涂县| 南漳县| 平度市| 本溪| 班玛县| 县级市| 夏津县| 邯郸县| 横峰县| 屏边| 汝城县| 贵定县| 垣曲县| 宿迁市| 彩票| 伊金霍洛旗| 松阳县| 阳春市|