使用c#編寫一個winform程式, 管理一個windows服務。對指定的windows服務,進行啟動、停止、重新啟動
1、引入 using System.ServiceProcess;
2、
/// <summary> /// 重新啟動按鈕 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnStopAndRun_Click(object sender, EventArgs e) { ServiceController serviceObject = this.GetServiceObject(); try { this.ReStarService(serviceObject); MessageBox.Show("重啟服務成功!"); } catch (Exception ex) { MessageBox.Show("重啟服務錯誤:" + ex.Message.ToString()); } } //擷取windows服務執行個體 private ServiceController GetServiceObject() { return new ServiceController("FloatcarGpsAppServer"); } /// <summary> /// 重啟 /// </summary> /// <param name="sc"></param> private void ReStarService(ServiceController sc) { this.StopService(sc); this.StarService(sc); } /// <summary> /// 停止服務 /// </summary> /// <param name="sc"></param> private void StopService(ServiceController sc) { if ((sc.Status == ServiceControllerStatus.Paused) || (sc.Status == ServiceControllerStatus.Running)) { sc.Stop(); } } /// <summary> /// 開始服務 /// </summary> /// <param name="sc"></param> private void StarService(ServiceController sc) { if ((sc.Status == ServiceControllerStatus.Paused) || (sc.Status == ServiceControllerStatus.Stopped)) { sc.Start(); } } /// <summary> /// 停止服務按鈕 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnStop_Click(object sender, EventArgs e) { ServiceController serviceObject = this.GetServiceObject(); try { this.StopService(serviceObject); MessageBox.Show("停止服務成功!"); } catch (Exception ex) { MessageBox.Show("停止服務發生錯誤:" + ex.Message.ToString()); } } /// <summary> /// 開始服務按鈕 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnRun_Click(object sender, EventArgs e) { ServiceController serviceObject = this.GetServiceObject(); try { this.StarService(serviceObject); MessageBox.Show("啟動服務成功!"); } catch (Exception ex) { MessageBox.Show("啟動服務失敗:" + ex.Message); } }