• 用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();
            }

  • 相关阅读:
    apache2.4+php7.3.2+mysql5.7
    redis 中的key值过期后,触发通知事件
    zookeeper之分布式锁以及分布式计数器(通过curator框架实现)
    SpringCloud学习笔记(4)——Zuul
    SpringCloud学习笔记(3)——Hystrix
    SpringCloud学习笔记(2)——Ribbon
    c++各种排序的简单实现
    c++动态规划dp算法题
    华为机试练习
    ubuntu遇到的 the system is runing low-graphics mode 问题
  • 原文地址:https://www.cnblogs.com/sddychj/p/5567210.html
Copyright © 2020-2023  润新知