码迷,mamicode.com
首页 > Windows程序 > 详细

用C#代码来安装、卸载、启动、关闭服务

时间:2016-06-07 16:22:03      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:

 /// <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();
技术分享        }

用C#代码来安装、卸载、启动、关闭服务

标签:

原文地址:http://www.cnblogs.com/sddychj/p/5567210.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!