目录
1.使用概述
这个程序可以注册一个(),并且可以通过启动参数指定要杀死的进程名和执行间隔。
注意:
该程序主要用于演示使用 .NET 创建服务、自定义以及安装和部署托管应用程序集。涉及在 .,.,.. 命名空间中使用类型。至于节目带来的功能,仅供娱乐。
该程序经测试可在 7 下运行,但未在其他系统上测试
服务的运行需要用户设置参数:(否则服务启动失败,报错到自定义storm目录)
第一个参数是要敲掉的进程的名字,需要加上exe,多个名字用分号隔开。
第二个参数为每次执行的时间间隔,参数为整数,单位为秒,默认为5秒。
事实上,如果出现错误,比如参数错误,服务会立即停止:
之后,用户可以在自定义storm目录中查看错误信息。实际上,时间目录还包含其他服务的运行状态信息。
2.创建服务
在 .NET 中,服务包装在 . 中,因此首先需要添加对 . 的引用。..class代表一个服务进程杀手,这个类继承自class进程杀手,class常用于IDE设计模式中的类型支持。
注意,服务是一个控制台程序,但它以开机启动,可以跟随或不跟随用户帐户控制(通常以本地系统权限运行),并且没有用户界面的概念。
该属性表示服务名称,是内部句柄。是退出时的返回码。可以设置storm目录,默认.Log为应用风暴目录,默认为服务名(.)。同时使用可以手动记录服务状态的变化,如恢复、暂停、停止、启动等...
的属性可以设置服务是否可以或接受个别功能,比如可以暂停和重启(),是否接收登录状态改变风暴(),是否接收电源状态风暴()等。然后有一系列的方式来对应上面的功能。
下面是最基本服务的派生类:
:
{
="服务名称";
()
{
基地。=;
}
([]参数)
{
基数。(参数);
}
()
{
根据。();
}
()
{
根据。();
}
()
{
根据。();
}
()
{
根据。();
}
([]参数)
{
。跑(());
}
}
注意在Main函数中,需要通过.Run来运行定义好的服务示例,.Run也可以运行链表。如果没有运行,使用服务管理器运行服务时会出现以下错误信息:难以运行服务,错误1053:服务没有及时响应启动或控制请求。
3.自定义storm目录并使用
后面会提到,storm 的默认属性是服务名,storm目录是应用程序。其实完全可以自定义服务需要的风暴记录目录。
可以使用注册方法。其实还是推荐使用de-,这样和服务本身的部署安装程序一起,整个过程可以集成安装和卸载,出现错误可以撤消。这是由于支持在 .NET 中的 .. 命名空间中进行安装和部署。
虽然在里面。命名空间,... dll 必须被引用才能使用。
used 和 Log 属性用于配置数据源名称和storm目录。其实还有更多的中间属性比如etc,这里不再赘述。
=();
ei.=.;
ei.Log=.;
然后使用风暴源名称在服务中写入时间:
.(.,"测试消息");
4.使用 ler 和
一个服务就是一个进程,一个托管进程可以承载多个服务。进程和服务之间存在一对多的关系,但通常一对一就足够了。而ler和是对应处理上面两个概念的...类,它们都是继承自,用于建立安装和部署。
ler 是用来控制整个过程的角色。属性(枚举类型)可以设置进程运行的权限。通常使用高权限,其实也可以遵循用户权限。这需要设置用户名和密码。这个需求可以通过设置ler和来实现。
用于定义单个服务的部署信息,例如名称(属性),应与定义的 . 依次为服务描述()、显示名称()、依赖服务()、启动类型(:、、)、delay手动启动()。
最后,结合其中使用的自定义storm目录,我们可以创建一个完整的...类,并将所有安装部署类型的对象添加到子安装包中。
;
..;
.Linq;
。文本;
.;
..;
.;
.;
[(真的)]
呃:
{
()
{
=();
=();
=();
spi.=.;
si.=.;
si.=.;
si.="定期杀掉制定进程,使用参数:进程名(用;分隔)[时间间隔,默认5秒]。注:仅用于C#和服务的编程示例。";
si.=.;
ei.=.;
ei.Log=.;
.添加(spi);
.添加(si);
.添加(ei);
如果(。(。))
.(.);
}
}
5.添加所有功能
好了,万事俱备,下面是实际的功能实现,如下:
因为贴进去会使文章过长,请下载下面的源代码以供参考。
6.使用.exe部署程序
整个服务建立起来了,但是很难直接运行。因为定义的安装类型并没有实际安装。
可以使用.NET 中提供的.exe 安装、部署或卸载应用程序集。
虽然..中的类不提供错误后撤消操作(调用方式)(...可以),但应用程序集保证在安装和卸载时达到预期的效果。
使用 .exe 的两种最常见的方法是
[组装路径] // 用于安装
/u[程序集路径]//用于卸载
更多.exe用法可以参考MSDN:
以下是该程序安装时的概要:
E:UsersMgen\2010\TTCTTCbin>
mgen.exe
(R).NET4.0.30319.1