Просто не используйте явный глагол.Использование определенного глагола, такого как «open», является большой ошибкой:
- «open» может не быть глаголом по умолчанию (например, это может быть «play», «edit» или «run»)
- 'open' может не существовать
Правильнее было бы просто передать nil как глагол .Система автоматически выберет наиболее подходящий глагол:
- Будет использоваться глагол по умолчанию, если он установлен
- Будет использоваться глагол «open», если глагол по умолчанию не установлен
- будет использоваться первый глагол, если нет доступных по умолчанию и глаголов «open»
- если глаголы не назначены - система выведет диалог «Открыть с помощью»
Другими словами, простой
ShellExecute(0, nil, 'C:\MyFile.StrangeExt', ...);
покажет диалог «Открыть с помощью».
Используйте только специфический глагол, если вы хотите специфическое действие.Например, «печать», «исследовать», «runas».В противном случае - просто передайте ноль.