我创建了一个非常简单的 Win 程序。它打开记事本并在 5 秒后打开 calc。问题是第一个程序总是在后台打开而不是焦点(见图)。第二个程序以焦点打开。我一直在想这个问题,我不知道为什么会发生或者如何打开第一个焦点程序。
我正在使用具有默认 Windows 应用程序设置的 Visual Studio 2013。
编辑:这不是一个重复的问题,我在这里要问的是为什么同一个 CreateProcess() 函数会在后台创建一次进程并在焦点中创建一次!
#include <Windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
STARTUPINFO si = { 0 };
PROCESS_INFORMATION pi = { 0 };
si.cb = sizeof(si);
CreateProcess(L"c:\\windows\\system32\\notepad.exe", NULL, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi);
Sleep(5000);
STARTUPINFO si2 = { 0 };
PROCESS_INFORMATION pi2 = { 0 };
si2.cb = sizeof(si2);
CreateProcess(L"c:\\windows\\system32\\calc.exe", NULL, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si2, &pi2);
return 0;
}