2015-10-27 1 views
0

Я написал приложение winform и создал программу установки с помощью Inno Setup, чтобы связать с ним расширение пользовательского файла.Как открыть вложение файлов из Outlook с помощью моего приложения winform?

Приложение настроено так, что если связанный тип файла дважды щелкнут, приложение автоматически откроет и загрузит файл. Это отлично работает, если файл дважды щелкнут на рабочем столе или в проводнике файлов.

Однако мы обнаружили проблему при попытке открыть вложение файла изнутри Outlook. Эта ошибка генерируется:

System.UnauthorizedAccessException 

Я поймал ошибку в своем приложении и проверил путь к файлу, который предоставляется программе. Он не существует в файловой системе (когда я пытаюсь перейти к ней).

C:\User\MyUserName\AppData\Local\Microsoft\Windows\INetCache\Content.Outlook\MXIIIP00\MyFilename.CustomExtension 

Раздел после ... \ Microsoft \ Windows \ не существует (насколько я могу видеть).

Кто-нибудь еще столкнулся с этой проблемой и знает, как ее решить?

UPDATE:

Если я раскрываю подсказку DOS - я могу на самом деле попасть в это место, даже если он не показан в Windows Explorer.

UPDATE 2:

Если я скопировать путь непосредственно в Windows Explorer, я могу видеть файлы здесь. Однако, если я дважды щелкнул файл отсюда - мое приложение все еще не может загрузить файл.

UPDATE 3:

файл, сохраненный с Outlook (и что мое приложение пытается открыть) выглядит пустым. Это объясняет, почему мое приложение не может обработать его. Outlook, кажется, что-то делает с файлом, когда я его отправляю. Он начинается с 72 КБ, когда я его отправляю, но когда я его получаю - это 252В.

ответ

2

Это проблема АВТОРИЗАЦИИ.

Вы можете попытаться запустить приложение и Outlook в ADMIN MODE, чтобы добиться успеха - по крайней мере, это обязательно, запустите оба на одном уровне авторизации.

Или попробуйте открыть ваше приложение в папке Windows TEMP ... но я думаю, вы не получите его из Outlook, если вы не программно извлеките вложение в эту папку и откройте его.

+0

Спасибо, ваше второе предложение приведет меня к ответу. –

2

Хорошо, так как оказалось, что здесь было два вопроса.

Первое было связано с тем, как я тестировал эту функцию. Чтобы имитировать файл, отправляемый клиенту, я использовал Outlook для отправки электронной почты с моим файлом в качестве приложения к себе. По какой-то (пока неизвестной) причине Outlook берет на себя обязательство отправить мне пустой файл. Когда я вошел в внешний почтовый клиент и отправил файл в Outlook, файл остался нетронутым.

Однако мое приложение все еще не откроет его.

Вторая проблема заключалась в создании временного файла с установленным атрибутом Read Only. Как только я настроил свое приложение, чтобы отключить его, все сработало нормально.

+1

Это очень помогло мне. Ant после этого этого сообщения помогло мне последний бит: https://stackoverflow.com/a/7399663/5110381 – Bjqn