Созданный процесс не работает внутри созданного рабочего стола?

Этот код предполагает создание второго рабочего стола и выполнение файла внутри него (создание процесса) без переключения на второй рабочий стол. Я знаю, что CreateDesktop работает, потому что я переключился на это пару раз. Проблема в том, что файл должен создать .xml файл в его месте, и он работает, когда я запускаю его отдельно, но он не работает (не создает файл XML) внутри второго рабочего стола (CreateProcess работает, и я вижу, что процесс файла работает). Когда я переключаюсь на второй рабочий стол и запускаю файл вручную, он работает (генерирует XML).

Код:

wchar_t explorerPath[MAX_PATH];
const LPCWSTR testfilePath = L"C:\\testfile.exe";
const LPCWSTR secondDesktopName = L"SecondDesktop";

STARTUPINFOW startup_info = { 0 };
PROCESS_INFORMATION process_info = { nullptr };

// Expand the path of explorer.exe
ExpandEnvironmentStringsW(L"%windir%\\explorer.exe", explorerPath, MAX_PATH - 1);

OpenDesktopW(secondDesktopName, NULL, FALSE, GENERIC_ALL);

CreateDesktopW(secondDesktopName, nullptr, nullptr, 0, GENERIC_ALL, nullptr);
startup_info.cb = sizeof startup_info;
startup_info.lpDesktop = LPWSTR(secondDesktopName);

CreateProcessW(explorerPath, nullptr, nullptr, nullptr, FALSE, 0, nullptr, nullptr, &startup_info, &process_info);
CreateProcessW(testfilePath, nullptr, nullptr, nullptr, FALSE, 0, nullptr, nullptr, &startup_info, &process_info);

Вот мой вопрос: CreateDesktop а также CreateProcess и работает, и тестовый файл работает при отдельном запуске, но тестовый файл не работает внутри второго рабочего стола (кажется, это просто пустой процесс с тем же именем), В чем причина? Мой код правильный? Как вы запускаете файл на рабочем столе, созданный CreateDesktop в с ++?

Testfile.exe это не графический интерфейс, это cli.

-2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]