如何显示由createprocess函数隐藏的控制台应用程序窗口

时间:2014-01-29 14:56:01

标签: c++ c++builder

我在c ++中有一个GUI。用于使用CreateProcess方法启动另一个基于控制台的独立应用程序的GUI。我通过在CREATE_NO_WINDOW中传递CreateProcess标记来隐藏这些控制台应用。现在我想让它再次可见。我该怎么做?

2 个答案:

答案 0 :(得分:1)

而不是使用CREATE_NO_WINDOW标志,而是使用wShowWindow结构的STARTUPINFO成员。最初将其设置为SW_HIDE(并将dwFlags成员设置为STARTF_USESHOWWINDOW),然后您可以在需要时使用ShowWindow()来显示/隐藏控制台窗口。要查找属于新进程的窗口,请使用EnumWindows()GetWindowThreadProcessId()查找其进程/线程ID与CreateProcess()结构中PROCESS_INFORMATION返回的ID匹配的窗口

答案 1 :(得分:0)

你有一次尝试创建窗口并将其传递出去。这是正确的,但你可以在createProcess方法之后显示或隐藏gui。

websiteChart.config.data = some_new_data;
websiteChart.update();

我创建了process.Now我使用find方法然后我可以显示GUI。

PROCESS_INFORMATION pi;
STARTUPINFO si;
ZeroMemory(&si,sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi);
si.wShowWindow = SW_SHOW;
si.dwFlags = STARTF_USESHOWWINDOW;
si.lpTitle ="my_process_console";
CreateProcess(null,"my.exe",null,null,false,CREATE_NEW__CONSOLE,null,null,&si,&pi);