当前位置导航:炫浪网>>网络学院>>网络应用>>服务器架设>>Windows Server

从NT服务启动Windows程序

源码下载

  介绍

通常,NT服务是控制台应用程序,它没有消息循环。不必等到用户登陆电脑,NT服务便能启动,并且在用户登出之后,它也不会停止运行。然而,许多现存的ActiveX控件很难,有时候根本不可能在控制台程序中使用。

  另一方面,MFC和VB程序都是Windows应用程序,所以在MFC或VB程序中使用ActiveX控件相当简单。要是能使MFC和VB程序像NT服务一样运行就不错了:

  • 在用户登陆电脑之前就启动

  • 在用户登出电脑之后继续运行

  可以用Windows程序的形式直接写NT服务,但是本文要提供一个更简单的解决方法。本文配套源代码是一个简单的NT服务程序,它能够启动和关闭其它程序。所有你需要做的是安装这个服务,修改.ini文件。下面是使用此NT服务的好处。

  • 它能够启动你指定的任意多个程序。被启动的程序将像 NT 服务一样运行(例如,不用用户登陆机器,它们便会在后台运行)。

  • 在没有合适特权情况下,用户不能终止由此服务启动的程序(除非机器关闭)。

  • 你可以在 NT 服务之外测试和调试你的程序。例如,你可以在 DevStudio 调试器中运行你的程序,单步进入源代码中查找错误等。当“调试无错”后,你将它配置成产品,从 NT 服务启动它。

  XYNTService

  XYNTService.exe是此NT服务程序可执行文件的名字。它是我研发的客户-服务器开发工具的一部分。你可以免费使用和修改本文包含的源代码。我知道也有其它的工具提供和XYNTService几乎相同的功能。然而,如你所见,XYNTService拥有更多的特性,并且更容易使用(例如,不需要编辑注册表)。下面显示了如何使用此程序。

  • 为了安装(install)服务,在命令提示符下运行下面命令:XYNTService -i

  • 为了卸载(un-install)服务,在命令提示符下运行下面命令:XYNTService -u

  默认情况下,在电脑重启时,安装的服务便会自动启动。你也可以使用服务图标从控制面板启动和关闭服务。服务启动时,它将会一个挨一个地创建在XYNTService.ini文件中定义的所有进程。服务关闭时,它将会终止这些进程(以相反顺序)。XYNTService.ini文件应该和可执行文件放在相同的目录。下面是此文件的一个例子。

  [Settings]
 ServiceName = XYNTService
 ProcCount = 3
 CheckProcess = 30
 [Process0]
 CommandLine = c:\MyDir\XYRoot.exe
 WorkingDir = c:\MyDir
 PauseStart = 1000
 PauseEnd = 1000
 UserInterface = Yes
 Restart = Yes
 [Process1]
 CommandLine = c:\MyDir\XYDataManager.exe
 WorkingDir = c:\MyDir
 PauseStart = 1000
 PauseEnd = 1000
 UserInterface = Yes
 Restart = Yes
 [Process2]
 CommandLine= java XYRoot.XYRoot XYRootJava.ini
 UserInterface = No
 Restart = No

相关内容
赞助商链接