【问题标题】:Get window handle from taskbar by mouse pos通过鼠标位置从任务栏获取窗口句柄
【发布时间】:2013-07-18 22:20:00
【问题描述】:

你能告诉我,我如何通过鼠标位置在任务栏中获取窗口句柄? 我尝试使用 Shell_TrayWnd + ReBarWindow32 + MSTaskListWClass 但它对我没有帮助。

【问题讨论】:

  • 您是指任务栏上显示的某个窗口的句柄,还是特定的通知图标,还是其他?
  • 处理在任务栏上显示的某个窗口 =)
  • 嗯,可能有一种方法,但这并不容易。在this page 上,他们能够在其中列出所有内容,因为它“将 DLL 注入到资源管理器中,它会读取它的内部结构”。显然,这些结构不是未记录的,因此它们可能有一些位置信息,考虑到我可以通过右键单击和拖动来切换同一应用程序中的窗口顺序。
  • 说到任务栏,你在哪个操作系统上?大概是 Vista+?
  • 你的最终目标是什么?请注意,任务栏的内部结构会从一个版本的 Windows 更改为下一个版本,因此您的程序可能随时停止工作。也许您最好使用可访问性界面以编程方式访问任务栏。

标签: c++ windows winapi taskbar


【解决方案1】:

WindowFromPoint() 应该满足您的需求,尽管它不会检索禁用或隐藏窗口的句柄。如果你也需要这些,你可以使用ChildWindowFromPoint() 来查找任务栏窗口的子窗口。

【讨论】:

  • 至少在 Windows 7 上,所有内容都包含在标题为“正在运行的应用程序”和类“MSTaskListWClass”的窗口中。此窗口没有子窗口。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-26
  • 1970-01-01
  • 1970-01-01
  • 2014-01-28
相关资源
最近更新 更多