C# 在WinRT应用程序中处理外部编辑器的退出/更改/etc

C# 在WinRT应用程序中处理外部编辑器的退出/更改/etc,c#,windows-runtime,windows-store-apps,C#,Windows Runtime,Windows Store Apps,我有一个WinRT应用程序,它可以从在线服务下载文件,并管理文件的本地副本。当文件存储在本地时,需要对其进行加密,但在编辑/查看过程中,正如在外部编辑器office、pdf等中发生的那样,需要对其进行解密 WinRT API集中是否有方法启动外部浏览器,即Windows.System.Launcher.LaunchFileAsync,并在该应用程序关闭时以某种方式获得通知 现在,我可以很好地下载和加密文件,但当我想查看它时,我必须解密它并启动外部编辑器,而不知道它是否完成,甚至不需要在完成后再次

我有一个WinRT应用程序,它可以从在线服务下载文件,并管理文件的本地副本。当文件存储在本地时,需要对其进行加密,但在编辑/查看过程中,正如在外部编辑器office、pdf等中发生的那样,需要对其进行解密

WinRT API集中是否有方法启动外部浏览器,即Windows.System.Launcher.LaunchFileAsync,并在该应用程序关闭时以某种方式获得通知

现在,我可以很好地下载和加密文件,但当我想查看它时,我必须解密它并启动外部编辑器,而不知道它是否完成,甚至不需要在完成后再次运行,以便重新加密文件


理想情况下,我希望以某种方式将外部应用程序绑定到我的应用程序,以便在外部编辑器关闭之前我的应用程序不可用,但在应用程序关闭或任何其他创造性解决方案时,我会满足于通知。

您的应用程序场景类似于Microsoft的skydrive应用程序。它从skydrive服务下载文件,与文件打开和文件保存选择器集成

尝试与文件选择器契约集成


你可以开始了。还有一些示例代码可用于实现文件选择器合同。

您可以有一个按钮,上面写着“编辑完成后单击此处”。尽管您已经想到了这一点,但它很容易出错。如果用户在编辑器关闭之前将任务返回到我的应用程序,我可能无法删除临时文件,如果删除,我将丢失他们的更改并打开外部编辑器,然后在以后重新保存未加密的副本。特别是因为有些编辑器锁定源文件,有些则不锁定。而且,当外部编辑器打开时,我的应用程序将被挂起。如果系统决定终止我的应用程序,用户甚至不会看到它仍在运行,返回并单击“完成”。即使它没有终止,用户仍然必须返回到它并单击“完成”,以便重新加密。据我所知,您不能这样做。您是否想过仅使用PDF并使用应用程序内PDF查看器控件?ComponentOne在他们的库中有一个,但我没有尝试过,也不知道它是否有用。不幸的是,我需要支持全方位的文档类型。我也研究了文件选择器,但问题是用户必须打开一个外部应用程序,然后选择从我的应用程序打开一个文件,然后选择它。由于流量从我的应用程序开始,这将是一个可怕的用户体验。