有图形用户界面的Windows Service
起因
在平时部署Windows Service时,通过命令行部署服务太费劲了,总想着有没有想桌面程序那样的方式,点个按钮就能完成所有操作的了。此想法由来已久,只是事情比较多,最近总算有时间了,在此想法的驱使下,最终有了这篇文章的诞生。
解决方案
一、开发环境
操作系统:Windows 10 X64
开发环境:VS2013
编程语言:C#
.NET版本:.NET Framework 4.0
目标平台:X86
二、创建Windows Service
1、新建一个Windows Service,并将项目名称改为“WindowsServiceDemo”,如下图所示:

2、重命名服务文件Service1.cs为ServideDemo.cs,弹出“重命名选择”提示框选择“是”。

3、选中服务文件ServiceDemo.cs,点击“查看代码”按钮,跳转至编辑代码页面。

4、在代码编辑也,编辑服务代码如下:
1 | using System; |
5、右键单击ServiceDemo.cs,单击“查看设计器”。在设计器上右键单击,点击“添加安装程序”。

6、程序安装文件ProjectInstaller.cs,包含一个“serviceProcessInstaller”和“serviceInstaller”组件。

7、serviceInstaller组件右键单击,选择“属性”。修改“ServiceName”为“ServiceDemo”,修改“Description”为“服务例子”;修改“StartType”为“Manual”。

8、serviceProcessInstaller组件单击,选择“属性”。修改“Account”为“LocalSystem”。

9、右键单击WindowsServiceDemo项目文件,选择“生成”。服务创建成功。

三、创建Service控制窗体程序
1、新建一个名为WindowsServiceDemoClient的Windows窗体程序。

2、设计窗体功能组件,如下图:

3、引入命名空间“System.ServiceProcess”和“System.Configuration.Install”,点击不同按钮实现按钮功能,代码如下
 View Code
4、为了在Windows窗体程序中安装、卸载Windows服务,需要在Windows窗体程序中引入已经生成的WindowsServiceDemo服务。

5、安装Windows服务需要UAC中Administrator的权限,右键WindowsServiceDemoClient“添加”-“新建项”,添加“应用程序清单文件”,app.manifest文件。

6、修改为

7、右键单击WindowsServiceDemoClient项目文件,选择“生成”。操作服务客户端创建成功。
四、运行Service控制窗体程序
1、右键“WindowsServiceDemoClient”窗体程序“在文件资源管理器中打开文件夹”。

2、在“bin”-“Debug”中找到WindowsServiceDemoClient.exe双击打开。

3、在“开始”-“Windows系统”-“运行”,输入“services.msc”打开服务列表。

4、点击“安装服务”,服务安装成功,手动刷新服务列表,ServiceDemo显示出来。

5、点击“启动服务”,服务启动成功,手动刷新服务列表,ServiceDemo状态显示“正在运行”。

6、点击“停止服务”,服务停止成功,手动刷新服务列表,ServiceDemo状态置空了。

7、点击“卸载服务”,服务卸载成功,手动刷新服务列表,ServiceDemo不存在了。

8、以下为服务启动和停止时写入“E:\ServiceDemoLog.txt”中的日志信息。

总结
到此文章完成,也算了了一个小小的心愿,O(∩_∩)O哈哈~
以后继续加油吧,写更好的文章。拜拜~