【问题标题】:How can Windows Sidebar Gadget communicate with my desktop app?Windows 边栏小工具如何与我的桌面应用程序通信?
【发布时间】:2009-10-18 06:02:52
【问题描述】:

我有一个 .NET 2.0 Windows 桌面应用程序(时间表),我开发并希望向它添加一个小工具界面(以便应用程序隐藏运行并通过小工具控制)。

让我的小工具与我的应用通信的最简单方法是什么?

我的一个想法是在应用程序中内置一个网络服务器,并且小工具控件使用 ajax 与应用程序通信。不过我希望有一个更简单的解决方案。

【问题讨论】:

    标签: windows .net-2.0 sidebar windows-desktop-gadgets


    【解决方案1】:

    您没有具体说明小工具和应用程序是用什么技术编写的,因此很难回答。假设您可以使用 .NET,带有命名管道绑定的 WCF 将非常简单。只需几行代码即可设置。

    【讨论】:

    • 感谢您的回答。是的,我使用的是 .NET (2.0),所以我可以实现命名管道支持。但是我如何从小工具中使用它?我快速搜索了一下,没有找到任何示例。
    • 通过小工具执行此操作并没有什么特别之处 - 只需在 google 上搜索“WCF 命名管道示例”即可。不过,您至少需要使用 .NET 3.0 才能获得 WCF(您可以在 2.0 中直接使用 PInvoke 进行命名管道的操作,但这很讨厌)。
    【解决方案2】:

    我们在其中一个小工具的 ActiveX 控件中使用 win32 API 与同一小工具的其他实例进行通信。不幸的是,我不能给你代码(因为我没有权限并且我不编写 .net 的东西),但归结为使用一个窗口(在你的情况下是应用程序窗口)作为服务器和gadget ActiveX控件作为客户端,使用SendMessage函数。

    您可以在http://www.codeproject.com/KB/gadgets/GadgetInterop.aspx 上查看使用 COM 互操作与 Windows 桌面小工具的示例

    注意:确保互操作程序集位于应用程序的目录而不是小工具目录中,否则在更新/卸载小工具时会遇到问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多