Функции ShellExecute и WinExec считаются устаревшими по нескольким причинам:
- Неправильная обработка ошибок. www.gunsmoker.ru Для вызовов этих функций нужно писать специальный код, чтобы реагировать на ошибки. www.gunsmoker.ru
- Неприспособленность к современным операционным системам. www.gunsmoker.ru ShellExecute и WinExec возвращают экземпляр загруженного модуля (HINSTANCE) как идентификатор запущенной программы, но они созданы для Windows 3.11 и более ранних ОС и плохо приспособлены для Windows 95 и более новых систем. www.gunsmoker.ru
Кроме того, WinExec используется только для совместимости с 16-битной Windows и не рекомендуется к применению в Win32-приложениях. www.rsdn.org
Вместо ShellExecute следует использовать функцию ShellExecuteEx, а вместо WinExec — функцию CreateProcess. www.gunsmoker.ru www.rsdn.org