使用sc create启动时,Windows程序不会运行

时间:2015-07-30 12:04:05

标签: c++ windows cmd system

我创建了一个应该作为Windows服务运行的程序,在启动时自动启动。

我也创建了一个启动器,它应该创建一个服务,然后停止。

Starter以管理员身份运行。

我从初学者那里调用这个系统命令:

system("sc create MyApp binpath= /*full path*/ type= own start= auto DisplayName= MyService");

system("sc start MyApp");

然后Windows说服务创建成功。

然而,应该作为服务运行的程序不会启动!

" sc start&#34>命令控制台暂时不显示任何内容,任务管理器显示"正在启动"以及后来的控制台说

"Error 1053: The service did not respond to the start or control request in a timely fashion".

我尝试运行这样的命令,在StackOverflow上的另一篇文章中显示:

sc create SERVICENAME binPath= "**cmd /c** c:\programlocation\program.exe"

然而,它说:

StartService Failed 2: The system cannot find the file specified.

所以**cmd /c**东西不起作用。

如何使其工作,请只使用Windows本机工具,无需外部程序。

1 个答案:

答案 0 :(得分:1)

可以做这样的事情:

Native C++ Windows Service

但是我转而使用C ++ / CLI并从C#中输出以下代码示例:

System.ServiceProcess.ServiceProcessInstaller

或者,更好的是,只需在C#中执行代码的Windows服务部分......这比在C ++中自己编写代码要容易得多。