3

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

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

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

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

有没有人有任何关于如何创建在创建它的同一应用程序中引发事件的项目的示例?我相信这很简单,但我很愚蠢。

非常感谢您的帮助。

4

3 回答 3

1

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

于 2009-12-12T22:07:41.400 回答
0

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

于 2010-07-07T02:19:34.613 回答
0

使用 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 Pack 的跳转列表时遇到了一些问题,我现在使用 VS 2010 Beta 2 并让 shell 处理跳转列表。

希望这会有所帮助。

于 2009-11-23T22:59:27.803 回答