Передача «open» в ShellExecute не открывает файл Word на конкретном компьютере

Я использую ShellExecute для открытия файлов. На одной машине среди более чем 2000 пользователей я не могу открывать файлы doc. docx открываются с помощью Wordpad.

Word 2010 установлен правильно, и двойной щелчок в проводнике по файлу Word открывает слово правильно, более того, документ отображается с правильным значком в проводнике. Обратите внимание, что все остальные файлы работают нормально (например, xls, xlsx, pdf, ...)

Кто-нибудь знает почему? Я проверяю и «использую это приложение для открытия файлов», это проверено.

В коде я проверяю ошибку и знаю, что сообщение об ошибке:

SE_ERR_ASSOCINCOMPLETE или SE_ERR_NOASSOC

(потому что в В обоих случаях я показываю ошибку «с типом файла не связано приложение», поэтому я не знаю, какая из ошибок существует, я должен выполнить отладку на стороне клиента, чтобы увидеть ее, но я не думаю, что это так важно в данном случае).

Есть у кого-нибудь идея? Вот что я использую для открытия файла:

ShellExecute(0, 'open', PWideChar(MyFilePath), '', '', SW_SHOWNORMAL);

Примечание: мне кажется, что проблема есть в реестре Windows для этого компьютера, это почти новая машина с Windows 7.

ПРИМЕЧАНИЕ для тех, кто голосует за закрытие. этот вопрос как вне темы: на самом деле это вопрос WinAPI: почему этот api не работает должным образом, когда он работает из проводника? Так что это не не по теме, особенно winapi в тегах.

6
задан LaBracca 13 June 2011 в 12:06
поделиться