有一组程序还有几个脚本,要从普通程序改为服务运行,其实是后台运行,不要弹出界面来。
本来想改程序,写成服务程序,想了想还是简单地用一个服务程序来调用算了。
正好看到一篇XYNTService的文章,正合我意。
XYNTService本身是个服务程序,它可以在INI文件中配置调用的程序,将多个程序运行起来。
但是有些服务程序的通常的限制,按缺省的系统服务运行可以有界面,但是不能访问网络映射盘。
若是以其它网络用户运行程序,就不可能有界面。
当然,我的应用正好不需要界面,在配置里设定无交互界面显示就好。
Windows的服务程序必须有一套管理接口,这点有些烦,一个程序必须从开始就按服务编程。不像Linux上的程序,后台运行就是服务了。
MS Windows 2000 SDK工具中有个srvany,好象就是能让任一个普通程序运行为服务,有了它就像有了Linux上的nohup一样了。不过我没用这个,也没有仔细研究,因为XYNTService是有源代码的,更符合我的心意,而且足够符合我的需求。
有了这个工具,以后就可以大胆地写脚本了,不必理会是服务还是普通程序了。
参考:
[1] 从NT服务启动Windows程序[2] Start Your Windows Programs From An NT Service[3] 使用srvinstw和srvany让程序加入到系统服务的方法