【问题标题】:Invoking desktop app from Windows Store app从 Windows 应用商店应用程序调用桌面应用程序
【发布时间】:2015-04-03 09:05:32
【问题描述】:

我有一个使用 c# 开发的 Windows 窗体桌面应用程序。我想利用 WinRT 应用程序(尤其是 Windows 10)中可用的动态磁贴功能。活动磁贴中的数据将使用 WMI 查询 (Win32_LogicalDisk) 获取。 我该如何做到这一点?我不想重写整个应用程序。动态磁贴应在背景上更新,单击磁贴时,需要调用我的桌面应用程序 exe。是否可以从 Windows Store 应用程序中获取 WMI 数据并调用 exe? 我尝试使用 http://blogs.msdn.com/b/dmx/archive/2014/04/30/how-to-trigger-a-desktop-process-from-windows-store-apps-the-easy-way-using-the-brand-new-visual-studio-templates.aspx 中给出的 Brokered Windows 运行时组件。但是由于我收到“TypeLoadException”而无法正常工作。

提前致谢。

【问题讨论】:

标签: c# windows-runtime windows-store-apps typeloadexception


【解决方案1】:

Metro 应用无法运行桌面应用。但是,他们可以使用 wcf 进行通信。因此,您可以创建将打开 wcf 主机的小型 Windows 服务。然后,您使用您的动态磁贴创建 Windows 商店应用程序。当 windows 服务收到 wcf 调用时,它会启动桌面应用程序。

还有 devexpress 的解决方案可以为桌面应用添加动态磁贴,但它不是免费的:https://www.devexpress.com/Products/NET/Controls/WinForms/Live-Tile-Manager/

【讨论】:

    【解决方案2】:

    WinRT 阻止网络环回,因此 wcf 不起作用。您可以禁用此功能进行测试,但我怀疑这不会让您满意。在此处阅读更多信息(并搜索 WinRT 网络环回以查找有关此主题的文章)。

    https://msdn.microsoft.com/en-us/library/windows/apps/Hh780593.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-28
      • 2015-09-29
      • 1970-01-01
      • 1970-01-01
      • 2012-09-02
      • 1970-01-01
      • 1970-01-01
      • 2015-12-12
      相关资源
      最近更新 更多