Можно ли передавать дескриптор нулевого окна в ShellExecute? - PullRequest
11 голосов
/ 24 февраля 2012

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

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

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

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

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

1 Ответ

12 голосов
/ 24 февраля 2012

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

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

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

...