#c# #winforms #com #com-interop #shell-extensions
#c# #winforms #com #com-взаимодействие #расширения оболочки
Вопрос:
Я пытаюсь просмотреть файлы в своем приложении WinForms. В данном конкретном случае у меня установлены приложения Office, и я пытаюсь просмотреть файлы xls или doc.
Я получаю ключи обработчика предварительного просмотра для всех расширений, просматривая следующие разделы реестра:
"SOFTWARE\Microsoft\Windows\CurrentVersion\PreviewHandlers"
"HKEY_CLASSES_ROOT{0}shellex{{8895b1c6-b41f-4c1c-a562-0d564250836f}}"
"HKEY_CLASSES_ROOTSystemFileAssociations{0}shellex{{8895b1c6-b41f-4c1c-a562-0d564250836f}}"
С {0}
расширением файла.
Я нахожу зарегистрированные обработчики предварительного просмотра для pdf, txt или rtf, используя первый ключ выше. На моем компьютере зарегистрировано только 12 обработчиков предварительного просмотра…
Так, например, для .doc и .docx у меня нет ShellEx
заглушки:
Однако я не могу найти обработчики предварительного просмотра для xls или doc. Outlook может легко показывать предварительные просмотры этих файлов с сообщениями. Если я буду следовать единственному значению, которое имеет смысл, я бы перешел к:
Итак, где именно зарегистрированы обработчики предварительного просмотра?
Комментарии:
1. В списке PreviewHandlers возьмите
CLSID
GUID, например, средства предварительного просмотра Microsoft Word, затем вы можете найти его местоположение вLocalServer32
ключеHKEY_CLASSES_ROOTCLSID{The-CLSID-GUID}LocalServer32(Default)
(->(Default)
равноnull
).2. То же
CLSID
самое(default)
относится к строковому значению ключа ({8895b1c6-b41f-4c1c-a562-0d564250836f}
это заглушка интерфейса прокси-сервера 32), которую вы найдете, например,HKEY_CLASSES_ROOT.docxshellex{8895b1c6-b41f-4c1c-a562-0d564250836f}(default)
.3. @Jimi Это то, что я пытался сделать. Но там даже
ShellEx
нет ключа. Я исправил свой вопрос более подробной информацией.4. У
HKEY_CLASSES_ROOT.docx...
вас нетShellEx
ключа? Почему? Подождите, у вас там нет обработчика предварительного просмотра для Microsoft Word. Установлен ли Office?5. @Jimi. Я не знаю, почему. Это то, что у меня есть. Возможно, он использует
OpenWithProgIds
ключ. У меня Windows 10 и Office 365.