【问题标题】:Windows 7 Jump ListWindows 7 跳转列表
【发布时间】:2011-04-19 16:12:28
【问题描述】:

我认为这就是所谓的:

我希望能够将类似的东西添加到我的程序中。例如打开按钮和其他会在应用内执行方法的按钮。顺便说一句,这是在 C# 中。

我确实查看了 Windows 7 API 代码包,但它.. 不能按我想要的方式工作。它不会让我像我想要的那样在我的应用程序中执行方法。它只是让您打开其他应用程序。

这样的事情可能吗?

【问题讨论】:

  • 嗨伊顿,请添加一些 ocde,这样我们才能真正帮助您。谢谢!
  • 你好,我从来没有真正想出任何代码,因为 W7 代码包没有我需要的功能。

标签: c# .net winforms windows-7 jump-list


【解决方案1】:

我认为是你不了解 JumpLists 的工作原理。 “它只是让你打开其他应用程序”正是它的作用,没有别的。那是 Windows 7 功能,而不是 API 代码包限制。关键是事实,你的应用程序没有运行,那么它应该在哪里执行你的方法? 正确的实现是让您的 JumpList 使用正确的参数运行您的应用程序,然后在您的应用程序 Main 方法中根据这些参数调用不同的方法。 别忘了,即使是窗口应用程序也有输入参数,就像控制台应用程序一样。

【讨论】:

    【解决方案2】:

    如果您查看 Outlook 和 Messenger,它们会调用应用程序中的其他命令,因此您知道这是可能的。但正如@Euphoric 所说,跳转列表的架构非常简单——选择目标(例如文件名或URL)会导致Windows 启动应用程序的另一个实例并将该目标作为命令行参数传递。选择一个任务会导致 Windows 启动该任务,该任务需要是其他一些 exe。

    如何解决这个看似矛盾的问题?另一个 exe 是与主应用程序通信的辅助 exe。这方面的例子供不应求,但我正在为 11 月初的演讲做一个演示,完成后我会在博客上发布。也许这个架构指针会让你开始。

    【讨论】:

      【解决方案3】:

      将 URL 分配给跳转列表项并使用 HTTP 侦听器在您的应用程序上调用方法。赞这个URL mapping with C# HttpListener

      此外,您可以采用令人讨厌的路线并使用共享互斥锁来使您的应用程序仅成为单个实例,并通过命名管道转发命令行参数。但是 http 监听器更好;)

      【讨论】:

        猜你喜欢
        • 2023-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-22
        • 2010-11-27
        • 2011-11-09
        • 1970-01-01
        • 2010-12-26
        相关资源
        最近更新 更多