private void InstallOrUnInstallService(string serviceName, bool install) { if (install) { var ofd = new OpenFileDialog(); if (ofd.ShowDialog() != System.Windows.Forms.DialogResult.OK) { return; } string exeFileName = ofd.FileName; WinServiceControl.InstallmyService(null, exeFileName); if (WinServiceControl.Existed(serviceName)) { labMsg.Text = "服务【" + serviceName + "】安装成功!"; labStatus.Text = GetStaus(); } else { labMsg.Text = "服务【" + serviceName + "】安装失败,请检查日志!"; } } else { WinServiceControl.UnInstallByServiceName(ServiceName); if (!WinServiceControl.Existed(serviceName)) { labMsg.Text = "服务【" + serviceName + "】卸载成功!"; } else { labMsg.Text = "服务【" + serviceName + "】卸载失败,请检查日志!"; } } }
private void btnStop_Click(object sender, EventArgs e) { if (MessageBox.Show("确定要停止服务吗?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes) { WinServiceControl.Stop(ServiceName); GetLastestStatus(); } }
private string GetStaus() { btnStart.SetValue(m_SyncContext, btn => btn.Enabled, false); btnStop.SetValue(m_SyncContext, btn => btn.Enabled, false); string staStr = ""; var status = WinServiceControl.GetServiceStatus(ServiceName); switch (status) { case ServiceControllerStatus.ContinuePending: staStr = "服务即将继续!"; break; case ServiceControllerStatus.PausePending: staStr = "服务即将暂停!"; break; case ServiceControllerStatus.Paused: staStr = "服务已暂停!"; btnStart.SetValue(m_SyncContext, btn => btn.Enabled, true); btnStop.SetValue(m_SyncContext, btn => btn.Enabled, true); break; case ServiceControllerStatus.Running: staStr = "服务正在运行!"; btnStop.SetValue(m_SyncContext, btn => btn.Enabled, true); break; case ServiceControllerStatus.StartPending: staStr = "服务正在启动!"; break; case ServiceControllerStatus.StopPending: staStr = "服务正在停止!"; break; case ServiceControllerStatus.Stopped: staStr = "服务未运行!"; btnStart.SetValue(m_SyncContext, btn => btn.Enabled, true); break; default: staStr = "未知状态!"; break; } return(staStr); }
private void GetLastestStatus() { if (WinServiceControl.Existed(ServiceName)) { btnInstall.SetValue(m_SyncContext, zw => zw.Enabled, false); btnUnInstall.SetValue(m_SyncContext, zw => zw.Enabled, true); labMsg.SetValue(m_SyncContext, zw => zw.Text, ""); labStatus.SetValue(m_SyncContext, lab => lab.Text, GetStaus()); } else { btnInstall.SetValue(m_SyncContext, zw => zw.Enabled, true); btnUnInstall.SetValue(m_SyncContext, zw => zw.Enabled, false); if (this.Visible) { labMsg.SetValue(m_SyncContext, zw => zw.Text, string.Format("{0}不存在", ServiceName)); labMsg.SetValue(m_SyncContext, zw => zw.ForeColor, Color.Red); } } }
private void btnOpenServicePath_Click(object sender, EventArgs e) { System.Diagnostics.Process.Start(WinServiceControl.GetWindowsServiceInstallPath(ServiceName)); }