Ejemplo n.º 1
0
        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 + "】卸载失败,请检查日志!";
                }
            }
        }
Ejemplo n.º 2
0
 private void btnStop_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show("确定要停止服务吗?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
     {
         WinServiceControl.Stop(ServiceName);
         GetLastestStatus();
     }
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
                }
            }
        }
Ejemplo n.º 5
0
 private void btnOpenServicePath_Click(object sender, EventArgs e)
 {
     System.Diagnostics.Process.Start(WinServiceControl.GetWindowsServiceInstallPath(ServiceName));
 }