第十三篇 一个安装、管理windows服务的桌面程序
2015-01-07 10:44
746 查看
在网上看到一个修改程序入口的程序去把windows 服务修改成控制台的程序,然后利用控制台的程序把服务安装和管理,也想起自己原来也写了一个对windows 报务管理的程序,不过是winform的。
界面如下(自己使用,界面比较丑陋):
![](file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image.png)
![](http://images.cnitblog.com/blog/562505/201501/071043507506227.png)
首先需要添加一个帮助类:
代码如下:
class Windows
[align=left] {[/align]
[align=left][/align]
[align=left]/// <summary>[/align]
[align=left]/// 检查服务存在的存在性[/align]
[align=left]/// </summary>[/align]
[align=left]/// <param name=" NameService "> 服务名 </param>[/align]
[align=left]/// <returns> 存在返回 true,否则返回 false; </returns>[/align]
[align=left]public static boolisServiceIsExisted( string NameService)[/align]
[align=left] {[/align]
[align=left]ServiceController [] services=ServiceController.GetServices ();[/align]
[align=left]foreach (ServiceController s in services )[/align]
[align=left] {[/align]
[align=left]if (s.ServiceName.ToLower () ==NameService.ToLower ())[/align]
[align=left] {[/align]
[align=left]return true ;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]return false ;[/align]
[align=left] }[/align]
[align=left][/align]
[align=left]/// <summary>[/align]
[align=left]/// 安装Windows服务[/align]
[align=left]/// </summary>[/align]
[align=left]/// <param name="stateSaver"> 集合,当传递给 Install 方法时,stateSaver 参数指定的 IDictionary 应为空。</param>[/align]
[align=left]/// <param name="filepath"> 程序文件路径 </param>[/align]
[align=left]public static voidInstallmyService( IDictionary stateSaver, string filepath)[/align]
[align=left] {[/align]
[align=left]try[/align]
[align=left] {[/align]
[align=left]AssemblyInstaller AssemblyInstaller1=newAssemblyInstaller ();[/align]
[align=left]AssemblyInstaller1.UseNewContext= true ;[/align]
[align=left]AssemblyInstaller1.Path= filepath;[/align]
[align=left]stateSaver.Clear();[/align]
[align=left]AssemblyInstaller1.Install(stateSaver );[/align]
[align=left]AssemblyInstaller1.Commit(stateSaver );[/align]
[align=left]AssemblyInstaller1.Dispose();[/align]
[align=left] }[/align]
[align=left]catch (Exception exp )[/align]
[align=left] {[/align]
[align=left]MessageBox .Show(exp.Message.ToString ());[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left][/align]
[align=left]/// <summary>[/align]
[align=left]/// 卸载Windows服务[/align]
[align=left]/// </summary>[/align]
[align=left]/// <param name="filepath"> 程序文件路径 </param>[/align]
[align=left]public static voidUnInstallmyService( IDictionary stateSaver, string filepath)[/align]
[align=left] {[/align]
[align=left]try[/align]
[align=left] {[/align]
[align=left]AssemblyInstaller AssemblyInstaller1=newAssemblyInstaller ();[/align]
[align=left]AssemblyInstaller1.UseNewContext= true ;[/align]
[align=left]AssemblyInstaller1.Path= filepath;[/align]
[align=left]AssemblyInstaller1.Uninstall(stateSaver );[/align]
[align=left]AssemblyInstaller1.Dispose();[/align]
[align=left] }[/align]
[align=left]catch (Exception exp )[/align]
[align=left] {[/align]
[align=left]MessageBox .Show(exp.Message.ToString ());[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left][/align]
[align=left]/// <summary>[/align]
[align=left]/// 检查Windows服务是否在运行[/align]
[align=left]/// </summary>[/align]
[align=left]/// <param name="name"> 程序的服务名 </param>[/align]
[align=left]public static boolIsRunning( string name)[/align]
[align=left] {[/align]
[align=left]bool IsRun= false ;[/align]
[align=left]try[/align]
[align=left] {[/align]
[align=left]if (!isServiceIsExisted( name))[/align]
[align=left] {[/align]
[align=left]return false ;[/align]
[align=left] }[/align]
[align=left]ServiceController sc= new ServiceController (name);[/align]
[align=left]if (sc.Status==ServiceControllerStatus.StartPending ||[/align]
[align=left]sc.Status== ServiceControllerStatus .Running)[/align]
[align=left] {[/align]
[align=left]IsRun= true ;[/align]
[align=left] }[/align]
[align=left]sc.Close();[/align]
[align=left] }[/align]
[align=left]catch[/align]
[align=left] {[/align]
[align=left]IsRun= false ;[/align]
[align=left] }[/align]
[align=left]return IsRun;[/align]
[align=left] }[/align]
[align=left][/align]
[align=left]/// <summary>[/align]
[align=left]/// 启动Windows服务[/align]
[align=left]/// </summary>[/align]
[align=left]/// <param name="name"> 程序的服务名 </param>[/align]
[align=left]/// <returns> 启动成功返回 true,否则返回 false; </returns>[/align]
[align=left]public static boolStarmyService( string name)[/align]
[align=left] {[/align]
[align=left]ServiceController sc= new ServiceController (name);[/align]
[align=left]if (sc.Status==ServiceControllerStatus.Stopped ||sc.Status ==ServiceControllerStatus .StopPending)[/align]
[align=left] {[/align]
[align=left][/align]
[align=left]sc.Start();[/align]
[align=left]//sc.WaitForStatus(ServiceControllerStatus.Running, new TimeSpan(0, 3, 0));//等待3min[/align]
[align=left] }[/align]
[align=left]sc.Close();[/align]
[align=left]return true ;[/align]
[align=left] }[/align]
[align=left][/align]
[align=left]/// <summary>[/align]
[align=left]/// 停止Windows服务[/align]
[align=left]/// </summary>[/align]
[align=left]/// <param name="name"> 程序的服务名 </param>[/align]
[align=left]/// <returns> 停止成功返回 true,否则返回 false; </returns>[/align]
[align=left]public static boolStopmyService( string name)[/align]
[align=left] {[/align]
[align=left]ServiceController sc= new ServiceController (name);[/align]
[align=left]if (sc.Status==ServiceControllerStatus.Running ||[/align]
[align=left]sc.Status== ServiceControllerStatus .StartPending )[/align]
[align=left] {[/align]
[align=left]try[/align]
[align=left] {[/align]
[align=left][/align]
[align=left]sc.Stop();[/align]
[align=left]sc.WaitForStatus( ServiceControllerStatus.Stopped , new TimeSpan (0, 0 , 10));[/align]
[align=left] }[/align]
[align=left]catch (Exception exp )[/align]
[align=left] {[/align]
[align=left]MessageBox .Show(exp.Message.ToString ());[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]sc.Close();[/align]
[align=left]return true ;[/align]
[align=left] }[/align]
[align=left][/align]
[align=left]/// <summary>[/align]
[align=left]/// 重启Windows服务[/align]
[align=left]/// </summary>[/align]
[align=left]/// <param name="name"> 程序的服务名 </param>[/align]
[align=left]/// <returns> 重启成功返回 true,否则返回 false; </returns>[/align]
[align=left]public static boolRefreshmyService( string name)[/align]
[align=left] {[/align]
[align=left]return StopmyService( name) && StarmyService( name);[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] //安装服务[/align]
[align=left]private void btnInstall_Click (object sender , EventArgs e )[/align]
[align=left] {[/align]
[align=left]try[/align]
[align=left] {[/align]
[align=left]IDictionary dictionary=newHashtable ();[/align]
[align=left]Windows .InstallmyService(dictionary , ServerPath);[/align]
[align=left]if (Windows .isServiceIsExisted (ServerName))[/align]
[align=left] {[/align]
[align=left]this .label1.Text= "服务已经安装。。" ;[/align]
[align=left]this .btnInstall.Enabled= false ;[/align]
[align=left]this .btnUnInstall.Enabled= true ;[/align]
[align=left]this .btnStart.Enabled= true ;[/align]
[align=left]this .btnStop.Enabled= false ;[/align]
[align=left]MessageBox .Show( "服务安装成功!" );[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]catch (Exception exp )[/align]
[align=left] {[/align]
[align=left]this .label1.Text= "服务安装失败。。" ;[/align]
[align=left]MessageBox .Show( "服务安装失败,ErrorCode:" +exp.Message );[/align]
[align=left] }[/align]
[align=left][/align]
[align=left] }[/align]
[align=left][/align]
[align=left] //卸载服务[/align]
[align=left]private void btnUnInstall_Click (object sender , EventArgs e )[/align]
[align=left] {[/align]
[align=left]try[/align]
[align=left] {[/align]
[align=left]IDictionary dictionary=newHashtable ();[/align]
[align=left]Windows .UnInstallmyService(dictionary , ServerPath);[/align]
[align=left]if (! Windows.isServiceIsExisted (ServerName))[/align]
[align=left] {[/align]
[align=left]this .label1.Text= "服务已经卸载。。" ;[/align]
[align=left]this .btnInstall.Enabled= true ;[/align]
[align=left]this .btnUnInstall.Enabled= false ;[/align]
[align=left]this .btnStart.Enabled= false ;[/align]
[align=left]this .btnStop.Enabled= false ;[/align]
[align=left]MessageBox .Show( "服务卸载成功!" );[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]catch (Exception exp )[/align]
[align=left] {[/align]
[align=left]this .label1.Text= "服务卸载失败。。" ;[/align]
[align=left]MessageBox .Show( "服务卸载失败,ErrorCode:" +exp.Message );[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left][/align]
[align=left][/align]
[align=left] //启动服务[/align]
[align=left]private void btnStart_Click (object sender , EventArgs e )[/align]
[align=left] {[/align]
[align=left]try[/align]
[align=left] {[/align]
[align=left]if (Windows .StarmyService (ServerName))[/align]
[align=left] {[/align]
[align=left]this .label1.Text= "服务启动中。。" ;[/align]
[align=left]if (Windows .IsRunning( ServerName))[/align]
[align=left] {[/align]
[align=left]this .label1.Text= "服务正在运行。。" ;[/align]
[align=left]this .btnInstall.Enabled= false ;[/align]
[align=left]this .btnUnInstall.Enabled= false ;[/align]
[align=left]this .btnStart.Enabled= false ;[/align]
[align=left]this .btnStop.Enabled= true ;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]catch (Exception exp )[/align]
[align=left] {[/align]
[align=left]this .label1.Text= "服务启动失败。。" ;[/align]
[align=left]MessageBox .Show( "服务启动失败,ErrorCode:" +exp.Message );[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left][/align]
[align=left][/align]
[align=left] //停止服务[/align]
[align=left]private void btnStop_Click (object sender , EventArgs e )[/align]
[align=left] {[/align]
[align=left]try[/align]
[align=left] {[/align]
[align=left]if (Windows .StopmyService (ServerName))[/align]
[align=left] {[/align]
[align=left]this .label1.Text= "服务停止中。。" ;[/align]
[align=left]if (! Windows.IsRunning (ServerName))[/align]
[align=left] {[/align]
[align=left]this .label1.Text= "服务已停止。。" ;[/align]
[align=left]this .btnInstall.Enabled= false ;[/align]
[align=left]this .btnUnInstall.Enabled= true ;[/align]
[align=left]this .btnStart.Enabled= true ;[/align]
[align=left]this .btnStop.Enabled= false ;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]catch (Exception exp )[/align]
[align=left] {[/align]
[align=left]this .label1.Text= "服务停止失败。。" ;[/align]
[align=left]MessageBox .Show( "服务停止失败,ErrorCode:" +exp.Message );[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left][/align]
[align=left] private void InstallServices_Load (object sender , EventArgs e )[/align]
[align=left] {[/align]
[align=left]ServiceController [] services=ServiceController.GetServices (); //加载时候把系统的服务列表加载进来[/align]
[align=left]foreach (var serviceController in services )[/align]
[align=left] {[/align]
[align=left]this .cmbServiceList.Items.Add(serviceController.ServiceName );[/align]
[align=left] }[/align]
[align=left] } 至此所有的功能基本上都完成了,能够对你选择的服务进行安装和卸载了,其它两个按钮的事件读者可以自己加 [/align]
[align=left]Demo下载:http://pan.baidu.com/s/1dDq2i2H[/align]
[align=left][/align]
界面如下(自己使用,界面比较丑陋):
![](file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image.png)
![](http://images.cnitblog.com/blog/562505/201501/071043507506227.png)
首先需要添加一个帮助类:
代码如下:
class Windows
[align=left] {[/align]
[align=left][/align]
[align=left]/// <summary>[/align]
[align=left]/// 检查服务存在的存在性[/align]
[align=left]/// </summary>[/align]
[align=left]/// <param name=" NameService "> 服务名 </param>[/align]
[align=left]/// <returns> 存在返回 true,否则返回 false; </returns>[/align]
[align=left]public static boolisServiceIsExisted( string NameService)[/align]
[align=left] {[/align]
[align=left]ServiceController [] services=ServiceController.GetServices ();[/align]
[align=left]foreach (ServiceController s in services )[/align]
[align=left] {[/align]
[align=left]if (s.ServiceName.ToLower () ==NameService.ToLower ())[/align]
[align=left] {[/align]
[align=left]return true ;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]return false ;[/align]
[align=left] }[/align]
[align=left][/align]
[align=left]/// <summary>[/align]
[align=left]/// 安装Windows服务[/align]
[align=left]/// </summary>[/align]
[align=left]/// <param name="stateSaver"> 集合,当传递给 Install 方法时,stateSaver 参数指定的 IDictionary 应为空。</param>[/align]
[align=left]/// <param name="filepath"> 程序文件路径 </param>[/align]
[align=left]public static voidInstallmyService( IDictionary stateSaver, string filepath)[/align]
[align=left] {[/align]
[align=left]try[/align]
[align=left] {[/align]
[align=left]AssemblyInstaller AssemblyInstaller1=newAssemblyInstaller ();[/align]
[align=left]AssemblyInstaller1.UseNewContext= true ;[/align]
[align=left]AssemblyInstaller1.Path= filepath;[/align]
[align=left]stateSaver.Clear();[/align]
[align=left]AssemblyInstaller1.Install(stateSaver );[/align]
[align=left]AssemblyInstaller1.Commit(stateSaver );[/align]
[align=left]AssemblyInstaller1.Dispose();[/align]
[align=left] }[/align]
[align=left]catch (Exception exp )[/align]
[align=left] {[/align]
[align=left]MessageBox .Show(exp.Message.ToString ());[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left][/align]
[align=left]/// <summary>[/align]
[align=left]/// 卸载Windows服务[/align]
[align=left]/// </summary>[/align]
[align=left]/// <param name="filepath"> 程序文件路径 </param>[/align]
[align=left]public static voidUnInstallmyService( IDictionary stateSaver, string filepath)[/align]
[align=left] {[/align]
[align=left]try[/align]
[align=left] {[/align]
[align=left]AssemblyInstaller AssemblyInstaller1=newAssemblyInstaller ();[/align]
[align=left]AssemblyInstaller1.UseNewContext= true ;[/align]
[align=left]AssemblyInstaller1.Path= filepath;[/align]
[align=left]AssemblyInstaller1.Uninstall(stateSaver );[/align]
[align=left]AssemblyInstaller1.Dispose();[/align]
[align=left] }[/align]
[align=left]catch (Exception exp )[/align]
[align=left] {[/align]
[align=left]MessageBox .Show(exp.Message.ToString ());[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left][/align]
[align=left]/// <summary>[/align]
[align=left]/// 检查Windows服务是否在运行[/align]
[align=left]/// </summary>[/align]
[align=left]/// <param name="name"> 程序的服务名 </param>[/align]
[align=left]public static boolIsRunning( string name)[/align]
[align=left] {[/align]
[align=left]bool IsRun= false ;[/align]
[align=left]try[/align]
[align=left] {[/align]
[align=left]if (!isServiceIsExisted( name))[/align]
[align=left] {[/align]
[align=left]return false ;[/align]
[align=left] }[/align]
[align=left]ServiceController sc= new ServiceController (name);[/align]
[align=left]if (sc.Status==ServiceControllerStatus.StartPending ||[/align]
[align=left]sc.Status== ServiceControllerStatus .Running)[/align]
[align=left] {[/align]
[align=left]IsRun= true ;[/align]
[align=left] }[/align]
[align=left]sc.Close();[/align]
[align=left] }[/align]
[align=left]catch[/align]
[align=left] {[/align]
[align=left]IsRun= false ;[/align]
[align=left] }[/align]
[align=left]return IsRun;[/align]
[align=left] }[/align]
[align=left][/align]
[align=left]/// <summary>[/align]
[align=left]/// 启动Windows服务[/align]
[align=left]/// </summary>[/align]
[align=left]/// <param name="name"> 程序的服务名 </param>[/align]
[align=left]/// <returns> 启动成功返回 true,否则返回 false; </returns>[/align]
[align=left]public static boolStarmyService( string name)[/align]
[align=left] {[/align]
[align=left]ServiceController sc= new ServiceController (name);[/align]
[align=left]if (sc.Status==ServiceControllerStatus.Stopped ||sc.Status ==ServiceControllerStatus .StopPending)[/align]
[align=left] {[/align]
[align=left][/align]
[align=left]sc.Start();[/align]
[align=left]//sc.WaitForStatus(ServiceControllerStatus.Running, new TimeSpan(0, 3, 0));//等待3min[/align]
[align=left] }[/align]
[align=left]sc.Close();[/align]
[align=left]return true ;[/align]
[align=left] }[/align]
[align=left][/align]
[align=left]/// <summary>[/align]
[align=left]/// 停止Windows服务[/align]
[align=left]/// </summary>[/align]
[align=left]/// <param name="name"> 程序的服务名 </param>[/align]
[align=left]/// <returns> 停止成功返回 true,否则返回 false; </returns>[/align]
[align=left]public static boolStopmyService( string name)[/align]
[align=left] {[/align]
[align=left]ServiceController sc= new ServiceController (name);[/align]
[align=left]if (sc.Status==ServiceControllerStatus.Running ||[/align]
[align=left]sc.Status== ServiceControllerStatus .StartPending )[/align]
[align=left] {[/align]
[align=left]try[/align]
[align=left] {[/align]
[align=left][/align]
[align=left]sc.Stop();[/align]
[align=left]sc.WaitForStatus( ServiceControllerStatus.Stopped , new TimeSpan (0, 0 , 10));[/align]
[align=left] }[/align]
[align=left]catch (Exception exp )[/align]
[align=left] {[/align]
[align=left]MessageBox .Show(exp.Message.ToString ());[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]sc.Close();[/align]
[align=left]return true ;[/align]
[align=left] }[/align]
[align=left][/align]
[align=left]/// <summary>[/align]
[align=left]/// 重启Windows服务[/align]
[align=left]/// </summary>[/align]
[align=left]/// <param name="name"> 程序的服务名 </param>[/align]
[align=left]/// <returns> 重启成功返回 true,否则返回 false; </returns>[/align]
[align=left]public static boolRefreshmyService( string name)[/align]
[align=left] {[/align]
[align=left]return StopmyService( name) && StarmyService( name);[/align]
[align=left] }[/align]
[align=left] }[/align]
下面只需要在按钮事件下面写入不同的代码就行了:
[align=left] //安装服务[/align]
[align=left]private void btnInstall_Click (object sender , EventArgs e )[/align]
[align=left] {[/align]
[align=left]try[/align]
[align=left] {[/align]
[align=left]IDictionary dictionary=newHashtable ();[/align]
[align=left]Windows .InstallmyService(dictionary , ServerPath);[/align]
[align=left]if (Windows .isServiceIsExisted (ServerName))[/align]
[align=left] {[/align]
[align=left]this .label1.Text= "服务已经安装。。" ;[/align]
[align=left]this .btnInstall.Enabled= false ;[/align]
[align=left]this .btnUnInstall.Enabled= true ;[/align]
[align=left]this .btnStart.Enabled= true ;[/align]
[align=left]this .btnStop.Enabled= false ;[/align]
[align=left]MessageBox .Show( "服务安装成功!" );[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]catch (Exception exp )[/align]
[align=left] {[/align]
[align=left]this .label1.Text= "服务安装失败。。" ;[/align]
[align=left]MessageBox .Show( "服务安装失败,ErrorCode:" +exp.Message );[/align]
[align=left] }[/align]
[align=left][/align]
[align=left] }[/align]
[align=left][/align]
[align=left] //卸载服务[/align]
[align=left]private void btnUnInstall_Click (object sender , EventArgs e )[/align]
[align=left] {[/align]
[align=left]try[/align]
[align=left] {[/align]
[align=left]IDictionary dictionary=newHashtable ();[/align]
[align=left]Windows .UnInstallmyService(dictionary , ServerPath);[/align]
[align=left]if (! Windows.isServiceIsExisted (ServerName))[/align]
[align=left] {[/align]
[align=left]this .label1.Text= "服务已经卸载。。" ;[/align]
[align=left]this .btnInstall.Enabled= true ;[/align]
[align=left]this .btnUnInstall.Enabled= false ;[/align]
[align=left]this .btnStart.Enabled= false ;[/align]
[align=left]this .btnStop.Enabled= false ;[/align]
[align=left]MessageBox .Show( "服务卸载成功!" );[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]catch (Exception exp )[/align]
[align=left] {[/align]
[align=left]this .label1.Text= "服务卸载失败。。" ;[/align]
[align=left]MessageBox .Show( "服务卸载失败,ErrorCode:" +exp.Message );[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left][/align]
[align=left][/align]
[align=left] //启动服务[/align]
[align=left]private void btnStart_Click (object sender , EventArgs e )[/align]
[align=left] {[/align]
[align=left]try[/align]
[align=left] {[/align]
[align=left]if (Windows .StarmyService (ServerName))[/align]
[align=left] {[/align]
[align=left]this .label1.Text= "服务启动中。。" ;[/align]
[align=left]if (Windows .IsRunning( ServerName))[/align]
[align=left] {[/align]
[align=left]this .label1.Text= "服务正在运行。。" ;[/align]
[align=left]this .btnInstall.Enabled= false ;[/align]
[align=left]this .btnUnInstall.Enabled= false ;[/align]
[align=left]this .btnStart.Enabled= false ;[/align]
[align=left]this .btnStop.Enabled= true ;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]catch (Exception exp )[/align]
[align=left] {[/align]
[align=left]this .label1.Text= "服务启动失败。。" ;[/align]
[align=left]MessageBox .Show( "服务启动失败,ErrorCode:" +exp.Message );[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left][/align]
[align=left][/align]
[align=left] //停止服务[/align]
[align=left]private void btnStop_Click (object sender , EventArgs e )[/align]
[align=left] {[/align]
[align=left]try[/align]
[align=left] {[/align]
[align=left]if (Windows .StopmyService (ServerName))[/align]
[align=left] {[/align]
[align=left]this .label1.Text= "服务停止中。。" ;[/align]
[align=left]if (! Windows.IsRunning (ServerName))[/align]
[align=left] {[/align]
[align=left]this .label1.Text= "服务已停止。。" ;[/align]
[align=left]this .btnInstall.Enabled= false ;[/align]
[align=left]this .btnUnInstall.Enabled= true ;[/align]
[align=left]this .btnStart.Enabled= true ;[/align]
[align=left]this .btnStop.Enabled= false ;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]catch (Exception exp )[/align]
[align=left] {[/align]
[align=left]this .label1.Text= "服务停止失败。。" ;[/align]
[align=left]MessageBox .Show( "服务停止失败,ErrorCode:" +exp.Message );[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left][/align]
[align=left] private void InstallServices_Load (object sender , EventArgs e )[/align]
[align=left] {[/align]
[align=left]ServiceController [] services=ServiceController.GetServices (); //加载时候把系统的服务列表加载进来[/align]
[align=left]foreach (var serviceController in services )[/align]
[align=left] {[/align]
[align=left]this .cmbServiceList.Items.Add(serviceController.ServiceName );[/align]
[align=left] }[/align]
[align=left] } 至此所有的功能基本上都完成了,能够对你选择的服务进行安装和卸载了,其它两个按钮的事件读者可以自己加 [/align]
[align=left]Demo下载:http://pan.baidu.com/s/1dDq2i2H[/align]
[align=left][/align]
相关文章推荐
- 第十三篇 一个安装、管理windows服务的桌面程序
- C#Windows Service服务程序的安装/卸载、启动/停止 桌面客户端管理程序设计
- 编写一个带管理界面(对话框)的windows后台服务程序
- 编写一个带管理界面(对话框)的windows后台服务程序
- 用C#写一个简单的WINDOWS服务程序
- 一个定时网络唤醒的Windows 2000服务(Service)程序
- Delphi编写系统服务四:如何限制系统服务和桌面程序只运行一个
- .net Windows服务程序和安装程序制作图解
- Windows 服务控制管理器通信的命令行程序
- 一个定时网络唤醒的Windows 2000服务(Service)程序
- C# windows服务安装程序的制作
- 转: 安装C# Windows服务程序
- Windows服务安装后设置自动启动与允许服务与桌面交互的方法
- C#制作Windows service服务系列一:制作一个可安装、可启动、可停止、可卸载的Windows service(downmoon原创)
- C#Windows 服务制作安装删除. 用户注销后,程序继续运行
- Windows 服务控制管理器通信的命令行程序
- 用VS2003部署,让服务程序安装完后立即启动服务并且选中“允许服务与桌面交互”及添加服务描述的方法
- 编写一个Windows服务程序,定时从数据库中拿出记录发送邮件
- windows服务安装程序的制作(.net)