【问题标题】:Windows 7 taskbar - jumplist, jumplistlink and jumplistitemWindows 7 任务栏 - jumplist、jumplistlink 和 jumplistitem
【发布时间】:2009-11-23 17:31:14
【问题描述】:

我正在使用 Microsoft .NET Framework 的 Windows API 代码包来试用 Win7 任务栏的一些新 UI 功能。我正在用 C# 编码。

我有一个关于跳转列表的问题。提供的所有示例代码都假定跳转列表中的条目用于调用以运行特定应用程序或打开文档,例如MRU 列表中的文本文档或运行 mspaint.exe。

我想实现一些允许我在自己的应用程序(即与任务栏交互的应用程序)中设置状态的项目。例如,当您可以设置您的状态(忙碌、离线等)时,MSN Messenger 就会这样做。

尽我所能,我无法创建 JUmpListItem 或 JumpListLink 以这种方式运行 - 它将它们视为应用程序或文档。

有没有人有任何示例来说明如何在创建它的同一应用程序中创建一个引发事件的项目?我敢肯定这很简单,但我很愚蠢。

非常感谢您的帮助。

【问题讨论】:

  • 这篇关于CodeProject的文章可能对here有帮助。

标签: c# windows-7 taskbar


【解决方案1】:

我相信您想要做的是使用一组特殊的标志调用您的应用程序(即使用某些参数启动可执行文件)。在应用程序启动时,您会检查设置了哪些标志,然后向应用程序的主实例发送消息,然后退出新实例。

【讨论】:

    【解决方案2】:

    使用TaskBarDemo,必须引用您的应用程序创建的项目,即如果您的程序创建了一个PDF文件,您可以这样做:

    jumpList.AddUserTasks(new JumpListLink(Path.Combine(systemFolder, "C:\\Program Files\\Adobe\\Reader 9.0\\Reader\\AcroRD32.exe"), "Open Adobe Reader")
            {
                IconReference = new IconReference(Path.Combine(systemFolder, "C:\\Program Files\\Adobe\\Reader 9.0\\Reader\\AcroRD32.exe"), 0)
            });
    

    否则,您必须确保您的应用程序为最近或频繁的项目注册文件关联。

    我在使用 API 包的跳转列表方面遇到了一些问题,我现在使用 VS 2010 Beta 2 并让 shell 处理跳转列表。

    希望这会有所帮助。

    【讨论】:

    • 谢谢,但我不想在外部实例化任何东西,我只想在我的应用程序中发送一个事件——就像一个漂亮的上下文菜单。 Jumplists 可以做到这一点吗?
    【解决方案3】:

    这些任务是某种 IShellLink。然后,您应该调用 ICustomDestinationList 的 AddUserTasks。在 Windows 7 培训工具包中查找示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-24
      • 2010-11-04
      • 2010-12-18
      • 1970-01-01
      • 2011-04-19
      • 1970-01-01
      • 2013-07-10
      • 2011-08-03
      相关资源
      最近更新 更多