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

  • 相关阅读:
    Android高效加载大图、多图解决方案,有效避免程序OOM
    修改Eclipse中项目在Apache Tomcat中的部署路径
    解决用户绕过Servlet直接访问jsp页面
    Java中文件的上传与下载
    Android菜鸟的成长笔记(1)——Android开发环境搭建从入门到精通
    Linux学习(1)vi编辑器的常用命令
    怎样获取运行计划
    如​何​使​用​P​H​P​开​发​高​效​的​W​E​B​系​统
    网页抓取信息(php正則表達式、php操作excel)
    hdu1078 记忆化搜索
  • 原文地址:https://www.cnblogs.com/sddychj/p/5567210.html
Copyright © 2011-2022 走看看