日前因需要将一个用C#写的控制台程序添加到windows 服务中。上网百度一下,搜到了诸如通过添加注册表的办法。尝试之后发现行不通。后来发现简单的控制台程序是不能通过这种方式添加到windows服务。正确的做法是在VS建一个windows服务,在Service1的OnStart和OnStop方法中添加相应的代码
protected override void OnStart(string[] args) { ////服务启动时执行代码 } protected override void OnStop() { //////服务停止时执行代码 }
服务写好之后,生成。又得到一个exe应用程序。网上有种说法是在VS建立一个“安装项目”。可有一个更简单的办法:在exe的目录下建立一个*.bat(批处理文件)。在里面输入
sc create 服务名 binpath= "服务的路径" start= auto
然后保存。双击就可以成功添加windows 服务了。sc create 命令也可以在cmd下输入,但本人觉得有时候写成*.bat比较方便。
注意: 选项名称包括等号。
等号和值之间需要一个空格。
type= <own|share|interact|kernel|filesys|rec>
(默认 = own)
start= <boot|system|auto|demand|disabled|delayed-auto>
(默认 = demand)
error= <normal|severe|critical|ignore>
(默认 = normal)
binPath= <BinaryPathName>
group= <LoadOrderGroup>
tag= <yes|no>
depend= <依存关系(以 / (斜杠) 分隔)>
obj= <AccountName|ObjectName>
(默认 = LocalSystem)
DisplayName= <显示名称>
password= <密码>
当然,也可建立另一个专门用于删除windows 服务的*.bat。命令是
sc delete 服务名
但删除服务之前记得要先把该服务停止。