如何用我的winform应用程序从Outlook打开文件附件?

本文关键字:文件 Outlook 我的 何用 winform 应用程序 | 更新日期: 2023-09-27 18:19:25

我已经编写了一个winform应用程序,并使用Inno Setup创建了一个安装程序,以便自定义文件扩展名与它相关联。

应用程序是这样设置的,如果双击相关的文件类型,则应用程序会自动打开并加载文件。如果从桌面或文件资源管理器中双击该文件,则可以正常工作。

然而,我们注意到一个问题,当试图从Outlook中打开一个文件附件。这个错误正在生成:

System.UnauthorizedAccessException

我已经捕获了应用程序中的错误,并检查了提供给程序的文件路径。它不存在于文件系统中(当我试图浏览到它时)。

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

…之后的部分'Microsoft'Windows'不存在(据我所知)。

还有其他人遇到过这个问题并知道如何解决吗?

更新:

如果我打开dos提示-我实际上可以到达这个位置,即使它没有显示在Windows资源管理器

更新2:

如果我将路径直接复制到Windows资源管理器中,我也可以在这里看到文件。但是,如果我从这里双击文件-我的应用程序仍然无法加载文件。

更新3:

Outlook保存的文件(我的应用程序正在尝试打开)似乎是空的。这就解释了为什么我的应用无法处理它。当我发送文件时,Outlook似乎对文件做了一些事情。当我发送它时,它开始是72KB,但当我收到它时,它是252B。

如何用我的winform应用程序从Outlook打开文件附件?

这是AUTHORIZATION的问题。

你可以尝试在ADMIN模式下运行你的应用程序和Outlook来获得成功-至少它是强制性的,在相同的授权级别下运行。

或者甚至尝试在Windows TEMP文件夹中打开您的附件…但我猜如果你不通过编程方式将附件解压到该文件夹并打开它,你就无法从Outlook中获取它。

这里有两个问题。

第一个是关于我如何测试这个功能。为了模拟发送给客户的文件,我使用Outlook将我的文件作为附件发送给我自己。由于某种原因(目前还不清楚),Outlook自动向我发送了一个空文件。当我登录到外部电子邮件客户端并将文件发送到Outlook时,文件仍然完好无损。

但是,我的应用程序仍然无法打开它。

第二个问题是创建临时文件时设置了只读属性。一旦我设置了我的应用程序来关闭这个,一切都工作得很好。