【问题标题】:Is it possible to embed Windows Sidebar Widgeds in own .Net Application是否可以在自己的 .Net 应用程序中嵌入 Windows 边栏小部件
【发布时间】:2011-05-16 08:48:39
【问题描述】:

我正在尝试将 Windows-Sidebar-Widgets 嵌入到我自己的 .Net 应用程序(WPF 和 C#)中,但我真的不知道从哪里开始。我用谷歌搜索了一下,但只找到了用于小部件开发的 SDK 和教程。我发现 Windows 中有一个小服务,运行小部件。我的想法是,我也许可以伪造这项服务并在我的程序中提供他的功能,以便我可以运行和显示小部件。

有没有人有一些关于如何做到这一点的提示?或者有一些这样做的经验?也许甚至有某种库来存放这类东西?

如果这是不可能的,也可以选择切换到 OpenSource widged-manager 来使用这个widgeds,但这只是一个紧急解决方案,非常感谢 windows-gadgeds。

关于我的系统的一些信息:

我在我的应用程序中为子窗口编写了某种小型窗口管理器。最重要的是,我想在某种 HostWindow 中显示小部件。

任何提示将不胜感激。

P.S.:如果我(或我们)能做到这一点,我愿意分享结果 :-)

【问题讨论】:

    标签: c# .net winapi widget windows-desktop-gadgets


    【解决方案1】:

    我从未见过用于托管小工具的库,但由于它们基本上只是网站,因此理论上您可以使用 MSHTML 组件来托管任意小工具。

    这并不是说它会很容易。

    您需要将小工具提取到某个临时目录,启动托管 MSHTML 的内容(在 WinForms 中 WebBrowser 会很方便),导航到该临时目录中的适当文件(通过解析 gadget.xml 发现),并将类似于 System 对象的东西推入小工具。

    作为起点,注入一些设置System = window.external; onload 和WebBrowerser.ObjectForScripting = new FakeGadgetSystem() 的脚本。

    FakeGadgetSystem 将需要[ComVisible(true)] 并实现相当数量的东西。我建议抓起一个或两个小部件进行测试,温和练习 Gadget API,然后慢慢实现它们进行的调用。与官方小工具托管服务 100% 兼容将是一个漫长的过程。

    【讨论】:

    • 嗯,听起来不错的开始方式
    猜你喜欢
    • 2017-10-30
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 2011-03-22
    • 2022-10-19
    相关资源
    最近更新 更多