zoukankan      html  css  js  c++  java
  • 用C#代码来安装、卸载、启动、关闭服务

     /// <summary>
            /// 启动服务
             /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button1_Click(object sender, EventArgs e)
            {
                ServiceController sc = new ServiceController("WindowsService1");
                if (sc.Status.Equals(ServiceControllerStatus.Stopped))
                {
                    sc.Start();
                }
            }
            /// <summary>
            /// 停止服务
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button2_Click(object sender, EventArgs e)
            {
                ServiceController sc = new ServiceController("MSSQLSERVER");
                if (!sc.Status.Equals(ServiceControllerStatus.Stopped))
                {
                    sc.Stop();
                }
            }
            /// <summary>
            /// 安装服务
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button3_Click(object sender, EventArgs e)
            {
                if (!isServiceIsExisted("Service1"))
                {                
                    string location = System.Reflection.Assembly.GetExecutingAssembly().Location;
                    string serviceFileName = location.Substring(0, location.LastIndexOf('//') + 1) + "WindowsService1.exe";

                    InstallmyService(null, serviceFileName);
                }
                else
                {
                    MessageBox.Show("系统已经安装了此服务!");
                }
            }
            /// <summary>
            /// 卸载服务
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button4_Click(object sender, EventArgs e)
            {
                if (isServiceIsExisted("Service1"))
                {
                    string location = System.Reflection.Assembly.GetExecutingAssembly().Location;
                    string serviceFileName = location.Substring(0, location.LastIndexOf('//') + 1) + "WindowsService1.exe";
                    UnInstallmyService(serviceFileName);
                }
                else
                {
                    MessageBox.Show("系统不存在此服务,不需要卸载!");
                }
            }


            /// <summary>
            /// 检查服务存在的存在性
            /// </summary>
            /// <param name=" NameService ">服务名</param>
            /// <returns>存在返回 true,否则返回 false;</returns>
            public static bool isServiceIsExisted(string NameService)
            {
                ServiceController[] services = ServiceController.GetServices();
                foreach (ServiceController s in services)
                {
                    if (s.ServiceName.ToLower() == NameService.ToLower())
                    {
                        return true;
                    }
                }
                return false;
            }
            /// <summary>
            /// 安装Windows服务
            /// </summary>
            /// <param name="stateSaver">集合</param>
            /// <param name="filepath">程序文件路径</param>
            public static void InstallmyService(IDictionary stateSaver, string filepath)
            {
                AssemblyInstaller AssemblyInstaller1 = new AssemblyInstaller();
                AssemblyInstaller1.UseNewContext = true;
                AssemblyInstaller1.Path = filepath;
                AssemblyInstaller1.Install(stateSaver);
                AssemblyInstaller1.Commit(stateSaver);
                AssemblyInstaller1.Dispose();
            }
            /// <summary>
            /// 卸载Windows服务
            /// </summary>
            /// <param name="filepath">程序文件路径</param>
            public static void UnInstallmyService(string filepath)
            {
                AssemblyInstaller AssemblyInstaller1 = new AssemblyInstaller();
                AssemblyInstaller1.UseNewContext = true;
                AssemblyInstaller1.Path = filepath;
                AssemblyInstaller1.Uninstall(null);
                AssemblyInstaller1.Dispose();
            }

  • 相关阅读:
    Java:多线程
    javascript:正则表达式、一个表单验证的例子
    DOM对象和window对象
    javascript:面向对象和常见内置对象及操作
    如何检查CentOS服务器受到DDOS攻击
    CentOS防SYN攻击
    CentOS服务器简单判断CC攻击的命令
    在VMware中为CentOS配置静态ip并可访问网络
    安全运维之:网络实时流量监测工具iftop
    安全运维之:网络实时流量监测工具iftop
  • 原文地址:https://www.cnblogs.com/sddychj/p/5567210.html
Copyright © 2011-2022 走看看