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

2021-12-29 21:03:49 字數 2307 閱讀 9827

windows服務大家都不陌生,windows服務組的概念,貌似ms並沒有這個說法。

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

visual studio可以不開啟,sqlserver management studio可以不開啟,但是sqlserver服務卻預設開啟了。下班後,我的計算機想用於生活、娛樂,不需要資料庫服務這些東西,尤其是在安裝了oracle資料庫後,我感覺機器吃力的很。

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

這樣我就可以設定sqlserver、oracle、vmware等的服務為手動開啟,然後在需要的時候選擇開啟。

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

服務組的定義,我使用了ini配置檔案,乙個配置節為乙個伺服器組,配置節內的key、value為服務描述和服務名稱。

配置內容的先後決定了服務開啟的順序,因此類似oracle這樣的對於服務開啟先後順序有要求的,要定義好服務組內的先後順序。

value值為服務名稱,服務名稱並非services.msc檢視的名稱欄位的值,右鍵服務,可以看到,顯示的名稱其實是服務的顯示名稱,這裡需要的是服務名稱。  

注:ini檔案格式:

[section1]

key1=value1

key2=value2

程式啟動,主窗體載入,獲取配置節,即服務組。

1 string path = directory.getcurrentdirectory() + "/config.ini";

2 list servicegroups = inihelper.getallsectionnames(path);

3 cboservicegroup.datasource = servicegroups;

其中的ini服務類,參考鏈結:

服務的啟動和停止,需要引入system.serviceprocess程式集。

啟動服務組:

複製**

1 if (string.isnullorempty(cboservicegroup.text))

2  6 //

7 string path = directory.getcurrentdirectory() + "/config.ini";

8 string section = cboservicegroup.text;

9 string keys;

10 string values;

11 inihelper.getallkeyvalues(section, out keys, out values, path);

12 //

13 foreach (string value in values)

14 26             catch (exception ex)

27            

30         }

31     }

32     catch (exception ex)

33    

36     //  

37 }

38 //

39 messagebox.show("服務啟動完成");

複製**

停止服務組

複製**

1 if (string.isnullorempty(cboservicegroup.text))

2  6 //

7 string path = directory.getcurrentdirectory() + "/config.ini";

8 string section = cboservicegroup.text;

9 string keys;

10 string values;

11 inihelper.getallkeyvalues(section, out keys, out values, path);

12 //

13 foreach (string value in values)

14 25             catch (exception ex)

26            

29         }

30     }

31     catch (exception ex)

32    

35     //

36 37 }

38 //

39 messagebox.show("服務停止完成");

40 }

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

windows服務大家都不陌生,windows服務組的概念,貌似ms並沒有這個說法。作為一名軟體開發者,我們的機器上安裝有各種開發工具,伴隨著各種相關服務。visual studio可以不開啟,sqlserver management studio可以不開啟,但是sqlserver服務卻預設開啟了。...

安裝 啟動 停止 解除安裝 Windows服務 c

問題 windows服務安裝時,出錯 system.componentmodel.win32exception 帳戶名無效或不存在,解決 將serviceprocessinstaller1 accout屬性,設為 localsystem 預設是user 執行 installuitl 程式名.exe ...

c 對windows使用者和組操作例項

複製 如下 using system using system.collections.generic using system.linq using system.text using system.directoryservices namespace jh.framework.security...