亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C#對Windows服務組的啟動與停止操作

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

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

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

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

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

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

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

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

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

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

配置文件如下圖所示

注:INI文件格式:

[Section1]

key1=value1

key2=value2

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

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


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

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

啟動服務組:

if (string.IsNullOrEmpty(cboServiceGroup.Text))
{
 MessageBox.Show("請選擇要操作的服務組");
 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("服務啟動失敗\n" + ex.ToString());
   }
  }
 }
 catch (Exception ex)
 {
  MessageBox.Show("不存在服務" + value);
 }
 // 
}
//
MessageBox.Show("服務啟動完成");

停止服務組

if (string.IsNullOrEmpty(cboServiceGroup.Text))
{
 MessageBox.Show("請選擇要操作的服務組");
 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("服務停止失敗\n" + ex.ToString());
   }
  }
 }
 catch (Exception ex)
 {
  MessageBox.Show("不存在服務" + value);
 }
 //

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

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

相關文章

  • Unity實現(xiàn)10天簽到系統(tǒng)

    Unity實現(xiàn)10天簽到系統(tǒng)

    這篇文章主要為大家詳細介紹了Unity實現(xiàn)10天簽到系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • ListView用法中與滾動相關的需求實現(xiàn)

    ListView用法中與滾動相關的需求實現(xiàn)

    這篇文章主要介紹了ListView用法中與滾動相關的需求實現(xiàn),獲取并設置ListView的滾動位置,以及獲取滾動位置處的項目,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • VS2019屬性管理器沒有Microsoft.Cpp.x64.user的解決辦法

    VS2019屬性管理器沒有Microsoft.Cpp.x64.user的解決辦法

    這篇文章主要介紹了VS2019屬性管理器沒有Microsoft.Cpp.x64.user的解決辦法,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • C#在WinForm中使用WebKit傳遞js對象實現(xiàn)與網(wǎng)頁交互的方法

    C#在WinForm中使用WebKit傳遞js對象實現(xiàn)與網(wǎng)頁交互的方法

    這篇文章主要介紹了C#在WinForm中使用WebKit傳遞js對象實現(xiàn)與網(wǎng)頁交互的方法,涉及針對WebBroswer控件及WebKit控件的相關使用技巧,需要的朋友可以參考下
    2016-03-03
  • 詳解c# 線程同步

    詳解c# 線程同步

    這篇文章主要介紹了c# 線程同步的相關資料,文中講解非常細致,示例代碼幫助大家更好的理解和學習c# 多線程,感興趣的朋友可以了解下
    2020-07-07
  • Unity實現(xiàn)簡單虛擬搖桿

    Unity實現(xiàn)簡單虛擬搖桿

    這篇文章主要為大家詳細介紹了Unity實現(xiàn)簡單虛擬搖桿,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C#簡單的加密類實例

    C#簡單的加密類實例

    AesManaged - 高級加密標準(AES) 對稱算法的管理類
    2013-03-03
  • C#主線程堵塞問題的解決方案

    C#主線程堵塞問題的解決方案

    這篇文章主要介紹了C#主線程堵塞問題的解決方案,在C#中,異步方法和async/await關鍵字是用來解決主線程阻塞的有效方式,文中有相關的代碼示例供大家參考,需要的朋友可以參考下
    2024-03-03
  • 基于Unity實現(xiàn)2D邊緣檢測

    基于Unity實現(xiàn)2D邊緣檢測

    這篇文章主要介紹了如何利用Unity實現(xiàn)2D邊緣檢測,從而達到人物描邊效果。文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-04-04
  • WinForm實現(xiàn)窗體最大化并遮蓋任務欄的方法

    WinForm實現(xiàn)窗體最大化并遮蓋任務欄的方法

    這篇文章主要介紹了WinForm實現(xiàn)窗體最大化并遮蓋任務欄的方法,涉及C#實現(xiàn)WinForm窗體全屏顯示的實現(xiàn)及調用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08

最新評論