Ключевое различие между функциями ShellExecute и ShellExecuteWait заключается в их поведении после запуска программы. 1
ShellExecute запускает внешнюю программу, после чего продолжает выполнение скрипта. 1
ShellExecuteWait, в свою очередь, запускает внешнюю программу и приостанавливает выполнение скрипта до завершения внешней программы. 2
Таким образом, ShellExecute выполняет задачу запуска и продолжения работы, в то время как ShellExecuteWait — запуск с последующим ожиданием завершения работы запущенной программы.