Windows 使用 sc create 启动时程序没有 运行

Windows program doesn't run when started using sc create

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

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

初学者是 运行 管理员。

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

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

system("sc start MyApp");

然后Windows表示服务创建成功。

然而,应该运行作为服务的程序却没有启动!

在 "sc start" 命令后,控制台有一段时间没有显示,任务管理器显示 "Starting",稍后控制台显示

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

我试过 运行 执行这样的命令,显示在 Whosebug 上的另一个 post 中:

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

但是,然后它说:

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

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

如何让它工作,请只使用Windows本机工具,不要使用外部程序。

可以做这样的事情:

Native C++ Windows Service

但我会切换到 C++/CLI 并从 C# 移植以下代码示例:

System.ServiceProcess.ServiceProcessInstaller

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