是否可以从Windows服务运行隐藏的控制台应用程序?

nor*_*aul 2 delphi service console-application windows-7 delphi-2010

我在Delphi 2010中编写了一个服务器,需要不时地启动一个控制台应用程序来备份数据库.控制台应用程序可以将日志信息发送到控制台窗口,但不是必需的.

这在作为应用程序运行时工作正常,但是当作为服务运行时,我在启动控制台应用程序时会遇到访问冲突.即使我将其隐藏(SW_HIDE)也是如此.

是否可以从Windows服务启动隐藏的控制台应用程序?该解决方案需要在XP,Vista和Windows 7上运行.

编辑:当我调用ShellExecute时发生访问冲突.

Jer*_*ers 5

如果您正在使用ShellExecute,则不要:它在服务中不起作用,并且几乎不是启动流程的最佳方式.

使用CreateProcess中代替.

在stackoverflow上查看这一堆ShellExecute/CreateProcess问题线程.

--jeroen