windows下vs如何将一个控制台程序改成服务(借助NTService类实现)

首先看一下所需要的文件,文件下载可通过我的资源进行下载。总共有7个文件如下图:

接下来咱们一起来实际操作一番:

添加文件到你的工程中,如下:

将你自己原来控制台的函数入口替换成int inter_main(),如下:

在myservice.cpp中修改你的服务名称,为你的服务起一个响亮的名字,这里我用的是TestService

注意:如果你的源代码使用.cpp写的,那么就需要你修改两处地方,如果你是.c写的,那么你可以直接使用:

1.NTServApp.cpp中申明inter_main的时候去掉extern “C”中的C申明,直接用extern int inter_main();即可,如图:

2.myservice.cpp中申明时候去掉C申明,直接用extern int inter_main();即可,如下图:

这个时候你就可以直接编译了。

编译完后,通过管理员权限启动cmd,并且进入你生成exe的目录,利用-i参数执行,成功以后会有installed的提示。安装服务,如下图:

这时候,打开计算机服务列表,就能看到你安装的服务了。

此时可以在右键单击属性里面设置为开机自启即可。

卸载服务:通过-u参数执行,会提示removed 如下图:

当然你还可以通过你的控制台去启动该程序,只需要在启动的时候加上参数--console即可

 

到这里,这个类的使用方法就介绍完了,下面有什么问题可以留言,我看到了会一一回复的,然后……

能不能点个赞再走,谢谢啦~~

NTService是一种可以将控制台程序转变为服务的方法。控制台程序通常是一种交互式的应用程序,需要在用户登录到操作系统后手动启动。然而,有时候我们希望某个程序在操作系统启动时自动运行,并且在后台持续运行,而不需要用户的干预。这时,我们可以使用NTServiceNTService提供了一些方法和事件,可以让我们通过继承该来编写一个自定义的服务程序。我们可以在该的OnStart方法中编写服务启动时的逻辑,在OnStop方法中编写服务停止时的逻辑。通过覆盖这些方法,我们可以控制服务的生命周期。 使用NTService还需要进行一些配置工作,比如注册服务、设置服务的启动型等。在配置完毕后,我们可以通过服务管理器或命令行工具对服务进行操作,比如启动、停止、暂停、恢复等。 将控制台程序写成服务时,需要注意一些差异。控制台程序通常会使用标准输入和输出与用户进行交互,但服务通常没有交互界面,所以需要将这些交互式的代码进行修改。同时,因为服务是在后台运行的,所以需要确保程序在任何情况下都能正常运行,并具备自动重启的能力,以应对异常情况。 总之,通过NTService,我们可以方便地将控制台程序转变为服务,并通过配置和编码来管理和控制服务的行为。这使得我们可以将原本需要人工干预的程序自动化运行起来,提高了程序的可靠性和稳定性。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RuningPigNO1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值