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