我能在Windows服务中调用system()函数吗?

在 Windows 服务的上下文中调用 system() 来执行子进程是可能的吗?

我使用一个示例项目(一个基本的 Windows 服务),用 C++ 实现了一个 Windows 服务。该服务使用 Local System 账户和桌面交互权限启动,并在基于定时器的对象中运行包括磁盘上的文件操作在内的各种代码。

但是,像 system("C:\\bin\\sth.exe some-param"); 或从静态库中运行 lua 代码这样的操作在 Windows 服务中不起作用。我已确保它们在控制台应用程序中正常运行。

有什么线索吗?

点赞
用户869951
用户869951

使用 CreateProcess 函数以便获取错误代码。如果这样做无法解决问题,请访问http://www.cplusplus.com/forum/windows/105447/,其中提供了有关 Local System 限制的重要信息和解决方法的链接(特别是http://www.codeproject.com/Articles/18367/Launch-your-application-in-Vista-under-the-local-s)。

2013-11-26 16:43:24