Windows 服务
来源:互联网 发布:算法的配套网站 编辑:程序博客网 时间:2024/04/27 08:49
Windows服务是指操作系统可以启动运行的程序。
编写一个windows服务至少需要以下三个部分:
1.服务程序的主体
2.服务安装程序,把服务安装到系统中,完成一些写注册表的操作。
3.服务控制程序,用代码控制服务的开关启停。
我们来看看第一个部分:
做法为:
1.创建一个项目,类型为Windows服务。单击ok以后,系统给我们生成了一个模板。一个program.cs和一个Service1.cs。双击Service1.cs会出现一个外观与windows Forms应用程序类似的设计器。双击这个文件,会在右下角出现property属性编辑窗口。里面有Name属性,这个是实现这个Service的类的名字,还有一个ServiceName是写到注册表中的服务名称,使用这个名称可以控制服务。
main中的代码为
service1.cs中的代码为
现在如果我们把Name属性改掉,那么上面中的Service1名字也会相应的改掉。但Service1.cs文件的名字不会随之改变,可以随意改。
在OnStart()方法里面是服务启动的时候运行的代码,这里我们可以放入任何我们想让其执行的代码。Main中的ServiceBase数组里面的元素是我们要跑的服务,可以加入多个。ServiceBase.Run()方法并不是启动服务,而是把SCM的引用提供给服务的入口点。让SCM可以控制服务。
2.我们安装这个服务。在这个项目里面add一个Installer Class,编辑它的代码。对于每一个你想要安装的服务编写 System.ServiceProcess.ServiceProcessInstaller ,System.ServiceProcess.ServiceInstaller,注意代码里面指定了要安装名字为QuoteService的服务。这个名字对应于上面服务中的ServiceName的属性值。
当build了这个项目后,我们就可以看见一个编译后的exe文件。到C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727中有一个InstallUtil.exe。在cmd中转到这个目录下运行【installutil 那个编译后的exe文件的完整目录】安装。安装的时候可能会弹出一个框叫你输入用户名和密码。如下操作
当弹出窗口(注:Set Service Login对话框)时,输入用来运行该服务的帐户的用户名和密码。用户名必须以domain/username的形式。(注:如果不是domain内帐 户,可以使用YourComputerName/administrator或./administrator的形式)
当完成后,你就会发现可以在服务列表中找到这个服务了。运行【installutil /u 那个编译后的exe文件的完整目录】卸载。
3.编写控制程序
新建立一个控制台项目,随便起一个名字。在主函数中写如下的代码:
找到这个服务,就可以调用ServiceController的各种方法对这个服务进行操作了。
- Windows服务
- Windows 服务
- windows服务
- Windows服务
- windows服务
- Windows服务
- windows服务
- windows服务
- Windows服务
- Windows 服务
- Windows服务
- Windows服务
- Windows服务
- WINDOWS服务
- Windows服务
- Windows 服务
- windows服务
- Windows 服务
- freemarker分析文档
- Windows 7 x64 Bug
- 更改MFC生成的程序的默认exe图标(转)
- 恶意PDF文件
- 会感染电脑的恶意Flash文件
- Windows 服务
- UML序列图总结
- JavaScript加载XML文件,并解析为JSON对象
- hql和sql的区别
- SQL Server 索引结构及其使用
- winpcap使用入门
- 我的自白
- 怎么查看和获取SQL Server实例名
- DICOM图像处理技术研究