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

2022-09-26 03:33:08 字數 2000 閱讀 1236

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

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

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

list servicegroups = inihelper.getallsectionnames(path);

cboservicegroup.datasource = servicegroups;

其中的ini服務類,參考鏈結:c#操作ini檔案的輔助類inihelper

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

啟動服務組:

if (string.isnullorempty(cboservicegroup.text))

//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)

catch (exception ex)

}} catch (exception ex)

// }//

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

停止服務組

if (string.isnullorempty(cboservicegroup.text))

//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)

catch (exception ex)

}} catch (exception ex)

//}//

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

}本文標題: c#對windows服務組的啟動與停止操作

本文位址:

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...