限制从服务调用CreateProcess

时间:2012-08-23 16:06:06

标签: visual-c++ service createprocess

我有一个用Visual C ++编写的程序,它是用Visual Studio 2005编译的,在Windows 2003上运行。

在程序中,它重复调用CreateProcess来启动一个只重复睡眠并向屏幕显示消息的程序,其中包含以下参数:

CreateProcess(app_pathname, (char*) full_app_name.chars(), 
                       NULL, NULL, FALSE, CREATE_NEW_CONSOLE, 0, 0, &si, &pi)

并且提供了si:

memset( &si, 0, sizeof(STARTUPINFO));
    si.cb = sizeof(STARTUPINFO);
    si.dwFlags |= STARTF_USESHOWWINDOW;
    si.wShowWindow = SW_SHOWDEFAULT;
    si.lpTitle = (char*) cmdLine;

我观察到的是,如果我从服务运行此程序,则不会在124之后启动新进程,并且不会从CreateProcess()API调用返回任何错误。

但是,如果程序是从visual studio或命令行运行的,那么我没有这个限制。

我尝试更改“LogOn”选项卡以使用我从命令行运行的同一用户帐户,并更改了“允许服务与桌面进行操作”,但没有看到任何行为上的差异。从查看CreateProcess API以及在互联网上进行研究,我无法找到答案。对服务产生的进程数量有任何限制吗?

0 个答案:

没有答案