.Net中的Multimonitor任务栏

时间:2010-05-27 14:27:58

标签: c# .net winapi taskbar

我有一个想法是在c#中为windows xp编写一个multimotor任务栏应用程序。那么,有没有人有任何信息

  • 将任务栏放在第二个上 监视器,
  • 使其使用Windows样式,
  • 以防止应用程序在运行 第二个监视器默认显示 任务栏上,
  • 等......

任何帮助都会......有帮助)))

1 个答案:

答案 0 :(得分:2)

您可以P / Invoke SHAppBarMessage()来创建任务栏。您需要的APPBARDATA.hWnd可能只是Form类的句柄。任何事情都与你所展示的一样。

获取使任务栏显示活动窗口所需的通知将变得更加困难。您需要使用由SetWindowsHookEx()设置的全局WH_SHELL挂钩来接收您需要的通知。您无法在C#中设置此挂钩,它需要一个可以注入进程的非托管DLL。你会在this project找到重要的帮助。

除非您以某种方式找到您需要的未记录信息,否则无法完成Windows任务栏的正常工作。微软没有记录这个有充分理由,任务栏是他们在Windows外观上进行创新的重要组成部分。在Win7中相当明显。他们不希望任何代码依赖于此,他们几乎不可能保持下一版本的Windows兼容。我不得不建议你完全禁用Windows任务栏并用你自己的替换它。