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