如何将自定义工具栏(DeskBand?)放在Windows 7中的任务栏上赢得WPF?

如何在任务面板之前将自定义工具栏放在Windows 7的任务栏上? 有一个名为Pokki的流行应用程序可以做到这一点。 在此处输入图像描述 我想知道我该怎么做?

编辑1:我需要100%的方式来访问Windows 7的自定义工具栏(DeskBand?)。我不是在寻找一个pin-an应用程序解决方案,而是一种构建能够处理自己的消息并显示它的自定义解决方案的方法自己的图标。 C#方式非常感谢。

Edit2:非常感谢WPF方式。

你会得到很多建议,不要在C#中这样做。 我不能建议,你的桌面带不能工作的几率很大。 问题是CLR版本注入问题,一个进程(如explorer.exe)只能加载一个版本的CLR。 如果版本错误,您的桌面带将无法正常工作。

在.NET 4.0中添加了针对此问题的非常具体的反措施,其CLR支持CLR的进程内并行版本。 换句话说,在一个进程中加载​​了多个CLR。 该function适用​​于此特定方案,即需要CLR的COM服务器,因为它是用托管代码编写的。 因此绝对要求您编写针对.NET 4.0或更高版本的扩展程序。

但是仍然存在遗留问题,而且微软仍然不支持shell扩展的这种情况的核心原因。 有一个“谁先来”的问题。 尽管警告没有这样做,但有一些shell扩展使用托管代码和目标CLR版本2.如果这样的扩展你的之前加载,一个完全随机的事件,因为它取决于注册表中的键的顺序,资源管理器可能会首先加载CLR 2。 然后,这会阻止进程并行function的工作,它只能在首先加载CLR版本4时达到目的。

这是完全不可识别的,当无法加载扩展时,资源管理器不会发出吱吱声。 对普通用户来说无法修复,你不能指望他修补一些模糊的注册表项。

在完全解除这个问题之前需要花费很多时间。 实际上,Windows需要在.NET 4之前停止支持.NET版本才能获得保证。 Windows 8首先没有安装.NET 3.5,但它仍然可以很容易地添加它。 所以要花很多时间,十年或更长时间。

好吧,请注意风,如果你不担心随机故障,你可以使它在C#中工作。 接下来你会被隐藏在非常模糊的COM接口细节中,幸存下来需要黑带技能,知道如何正确声明[ComImport]接口。 这不是你应该自己解决的问题,而是由其他人完成的。 我不习惯推荐产品,但不能跳过推荐EZShellExtensions ,这是一个专门用于帮助在C#中编写shell扩展的库。 支持deskband是其广告function之一。 使用试用版来修改它,看看你是否可以把它带到一个好的结局。