我创建了一个应该作为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本机工具,无需外部程序。
答案 0 :(得分:1)
你可以做这样的事情:
但是我转而使用C ++ / CLI并从C#中输出以下代码示例:
System.ServiceProcess.ServiceProcessInstaller
或者,更好的是,只需在C#中执行代码的Windows服务部分......这比在C ++中自己编写代码要容易得多。