2012-04-23 119 views
0

我有一个本地系统服务应用程序,用C++/MFC编写,旨在运行在Windows操作系统上。当系统启动时,我需要运行此服务中的代码。我最初的想法是从ServiceMain()函数开始运行它,它是通过调用StartServiceCtrlDispatcher()API来定义的,但问题在于,如果我停止并重新启动此服务,它也会运行。如何在Windows服务应用程序中启动系统时运行代码?

+0

像你想要比的服务的司机听起来更多... – ildjarn 2012-04-23 22:32:56

+0

不,我需要知道是系统启动的时间。 – ahmd0 2012-04-23 22:49:16

+1

如果是这样的话,'net statistics server'有什么问题? – ildjarn 2012-04-23 22:50:50

回答

1

听起来像你不需要服务。您可以对计划任务执行相同操作。您可以使用taskschd.msc创建具有触发任务启动在系统启动时任务,或者在命令行:

schtasks.exe /Create /SC ONSTART /TN MyTaskName /TR c:\Path_to_my_tool\my_executable.exe 
+0

谢谢。你看,我没有为此目的创建一项服务。我已经有了一个需要知道系统启动时间的服务。计划任务管理器本身就是一项服务,所以它必须以某种方式知道,对吗? – ahmd0 2012-04-24 04:03:23

+0

如果你已经有一个exe是一项服务,可以使用一个特殊的参数作为一个计划任务来调用它。例如:'myservice.exe/OnStartup'。在现有的服务解析命令行中,只有在存在命令行选项的情况下才执行您想在启动时运行的代码。 – 2012-04-24 13:54:58

相关问题