桌面应用与Metro应用之间的通信
桌面应用与Metro应用之间的通信
可能重复:
在同一台机器上,Windows 8的Metro应用程序如何与后台桌面应用程序进行通信?
我们公司有一个长期开发的桌面应用程序,正在尝试进行更新,我们希望为其添加Windows 8支持。
对于我们来说,重新编写整个应用程序以符合Metro风格非常困难,但我们可以简单地使用一些Windows 8的新功能,如动态磁贴。
为了实现这一点,似乎我们应该开发一个简单的Metro应用程序,与桌面应用程序进行通信。是否有任何标准的方法来实现这一点?
在Metro(或Modern)应用中,除了自身软件之外,不应该有任何其他软件的依赖关系(即它们应该是自包含的)。然而,可以通过绕过回环预防功能,通过WCF服务或套接字与其他应用程序进行通信。更多信息请参见这个thread。
直接回答您的问题,我不认为有任何标准的方法可以做到这一点,因为这是不应该做的。
除了上面的回答外,请注意,您只能在x86 / x64版本的Win8中使用桌面。在ARM版本中,由于没有桌面可用,您将无法使用您的应用程序。
从上述内容可以看出,Metro应用程序不应该依赖于桌面应用程序或与桌面应用程序进行通信。然而,可以通过绕过回环预防功能,使用WCF服务或套接字实现与其他应用程序的通信。这是因为Metro应用程序被设计为自包含的,不依赖于其他软件的安装。
然而,这种通信方式并不被认为是标准的方法,因为Metro应用程序不应该跨越自身的边界与其他应用程序进行通信。
此外,需要注意的是,在Win8的ARM版本中,没有桌面可用,因此无法在该版本中使用桌面应用程序。
虽然可以通过绕过回环预防功能实现Metro应用程序与桌面应用程序的通信,但这并不被认为是标准的方法,而且在某些版本的Windows操作系统中可能无法实现。