У меня есть (внутреннее) приложение, работающее в Windows 8, которое поддерживает произвольное расширение файла: .ALM
Приложение может открывать .ALM
файлы при передаче в качестве аргументов командной строки. И у меня есть расширение файла, настроенное так, что .ALM
файлы могут быть открыты непосредственно из проводника Windows. То есть двойной щелчок по файлу .ALM
открывает этот файл в моем приложении.
Однако Outlook не будет открывать .ALM
файлы, отправленные в виде вложений электронной почты. Вложение показывает соответствующий значок файла .ALM
в Outlook и пытается открыть вложение, но молча не удается.
Кажется, единственный способ заставить Outlook открыть вложение, если я отредактирую соответствующую запись в реестре и добавлю cmd /c start
в начале команды для выполнения. То есть я не могу просто добавить полный путь к приложению.
Похоже, что в Windows есть два способа сделать это - через HKLM \ Classes или HKCU (это то, что Windows устанавливает, когда вы устанавливаете сопоставление файлов через панель управления). Оба подхода нуждаются в одинаковом хаке для работы Outlook.
Если я использую подход HKCU (то есть, чтобы Windows ассоциировала мое приложение с файлами .ALM
), мне нужно пойти и найти соответствующую запись в реестре и добавить cmd /c start
в начале. Я знаю, как это сделать, так что это нормально для меня. Но большинство моих пользователей не имеют доступа к реестру (или не знают, что с ним делать).
Я проинструктировал свое приложение и подтвердил, что к нему ничего не получается (поэтому Outlook не получает исключения из приложения).
Похоже, что Outlook рекомендует пройти через часть «Стандартных программ» панели управления, что я и сделал (но безрезультатно). Так я обнаружил изменения в HKCU.
Если это уместно, мое приложение является приложением CF WPF, работающим в .Net 3.5 (по историческим причинам).
Так что мне интересно, есть ли известный способ заставить Outlook открывать пользовательские расширения файлов из папки установки приложения, обращаясь непосредственно к приложению?
Спасибо