-1

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

但我无法编辑 gui 程序

有没有办法从服务程序将 gui 设置为隐藏或设置 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?

4

1 回答 1

0

最接近的可能是设置wShowWindowSTARTUPINFO 结构的成员。即使这样,它也只有在应用程序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))
{
    //...
}
于 2013-04-18T15:17:28.690 回答