在后台运行gui程序

时间:2013-04-18 14:55:25

标签: c++ windows visual-studio user-interface service

我创建了一个将运行另一个程序的Windows服务。但现在我想运行一个有gui但在后台的程序,所以我不希望gui可见。这是我用于service

的代码

但我无法编辑gui程序

有没有办法将gui设置为hidden或者从服务程序中设置visible = false?

该服务是使用visual studio在c ++中创建的Windows服务

我使用CreateProcess来启动exe文件 这是我用于从服务运行程序的代码:

path = "C:\MyDirectory\MyFile.exe";

STARTUPINFO info={sizeof(info)};
PROCESS_INFORMATION processInfo;
if (CreateProcess(path, cmd, NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo))
{
    ::WaitForSingleObject(processInfo.hProcess, INFINITE);
    CloseHandle(processInfo.hProcess);
    CloseHandle(processInfo.hThread);
}

是否可以在不编辑程序本身的情况下隐藏gui?

1 个答案:

答案 0 :(得分:0)

您可能获得的最接近的将是设置STARTUPINFO结构的wShowWindow成员。即使这样,只有当应用程序遵守nCmdShow中的WinMain参数时,它才会起作用。

STARTUPINFO info = {0};

info.dwFlags = STARTF_USESHOWWINDOW;
info.wShowWindow = SW_HIDE;

if (CreateProcess(path, cmd, NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo))
{
    //...
}