如果想让自己的应用程序在2003服务器登录前运行,除了写底层的vxd驱动外,似乎只能做成系统服务。而默认安装好的Windows 2003又没有提供制作成系统工具的服务器。如果强行修改注册表加入,很有可能启动失败。怎么办,当然是Google一下。
原来微软提供了一个名为Windows 2003 Resource Kits的包,里面有各式各样奇奇怪怪的小工具,其中有两个就是用来将普通程序变成系统服务器的。一个称为instsrv.exe,另一个唤作srvany.exe。
下面开工,先装好资源包。假设我们的程序名为chatServer.exe,我需要它成为系统服务器,在系统启动但是未登录的情况下运行……
控制台下键入命令
1
|
instsrv chatServer d:\chat\chatServer.exe
|
将其注册为系统服务,进入管理工具的服务中查看,多了一项chatServer。尝试启动,如果你能正常启动它,OK。如果启动失败,则表明我们的程序不太适应系统服务这种东西。没关系,微软提供了一个srvany.exe的东东,从名字就看得出来,它可以将任何程序变成系统服务。
1.进入注册表,找到HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\chatServer,把ImagePath的内容改为指向srvany.exe,如“d:\tools\srvany.exe”
2.新建Parameters项目,添加application子键,内容为应用程序的路径,如:d:\chat\chatServer.exe
3.回到进入管理工具的服务中,启动chatServer, All done。
4.别忘了将该服务器改为自启动。
如果你仍然搞不定的话,推荐一个专干这个事情的软件Firedaemon.com,咱也是失败了很多次,后来用这个软件搞定的,囧。不过公司的服务器都是Linux和FreeBSD了,哪天有钱买服务器后CoCo也把自己的服务器搞成Linux,windows的服务器实在是太不好用了……