При разработке программы на Delphi возникла проблема с тем, что необходимо запустить Java приложение, передав в него ещё и кучу аргументов и запустив определённый главный класс.
На машине разработчика всё работает на ура, но у простых обывателей этот момент пролетает без ошибок, предупреждение и чего-либо дающего понять, в чём проблема.
Из возможных вариантов отобрали кучу всяких всяких и остался только вариант с тем, что среда разработки Delphi при установке, добавляет в Windows какие-то свои библиотеки, на которых всё и держится.
Я нагуглил в интернетах, что для ShellExecuteEx необходима Shell32.dll, но она есть (поиск по папке Windows), при чём примерно в 20 экземплярах по разным путям.
Сомнительно, что добавляются библиотеки для этой функции. Потом эта функция возвращает результат работы true/false. И вызов GetLastError должен прояснить ситуацию. В идеале в лог отправить все параметры структуры PShellExecuteInfo и результат GetLastError. Затем еще проверить, что у пользователей все что вы запускаете находится именно там. Далее будет видно. Может быть есть еще какие-нибудь фокусы с правами, наверняка разработчик работает с правами администратора, а вот пользователи скорей всего нет.