Можно ли передать дескриптор нулевого окна в ShellExecute?

У меня есть консольное приложение Delphi, которое в конце должно запускать одно из двух приложений.

У меня возникли проблемы с запуском ShellExecute без ошибок, и я думаю, что проблема связана с отсутствием дескриптора для приложения консоли.

Линия, которая вызывает у меня горе:

ShellExecute(0, 'open', 'someapplication.exe', nil, nil, SW_SHOWNORMAL);

Я думаю, что 0 в дескрипторе - проблема, поскольку он компилирует ОК и запускается в отладчике в порядке, но если я пытаюсь запустить исполняемый файл, я получаю необработанную ошибку (консольное приложение считает, что оно закончилось с радостью).

Ответ 1

Передача 0 для параметра hwnd прекрасна. В документации описывается параметр таким образом:

Дескриптор родительского окна, используемого для отображения пользовательского интерфейса или сообщений об ошибках. Это значение может быть NULL, если операция не связана с окном.

Ваша ошибка связана с чем-то другим.