Неприменимость настроект STARTUPINFO
У меня есть код создания процесса. Почему дочерний процесс, выводящий Hello на экран, не использует настройки STARTUPINFO?
#include <windows.h>
#include <stdio.h>
int main() {
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
ZeroMemory(&pi, sizeof(pi));
si.cb = sizeof(si);
si.dwFlags = STARTF_USEPOSITION | STARTF_USESIZE | STARTF_USESHOWWINDOW;
si.dwX = 100;
si.dwY = 100;
si.dwXSize = 800;
si.dwYSize = 600;
si.wShowWindow = SW_SHOW;
// Создание нового процесса
if (!CreateProcess(
NULL, // Модуль (cmd.exe)
"cmd.exe /K echo Hello", // Команда для выполнения
NULL, // Дескриптор безопасности процесса
NULL, // Дескриптор безопасности потока
FALSE, // Не наследовать дескрипторы
CREATE_NEW_CONSOLE, // Флаг: создать новую консоль
NULL, // Родительская переменная окружения
NULL, // Рабочая директория
&si, // Указатель на STARTUPINFO
&pi)) { // Указатель на PROCESS_INFORMATION
printf("Ошибка создания процесса (%d).\n", GetLastError());
return 1;
}
WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
printf("Bye\n");
getchar();
return 0;
}