2017-05-24 56 views
-4

任何想法如何获得Windows中的所有任务栏项目的详细信息。我要寻找一个通知,如果一些新的东西来处理任务栏列表中获取Windows任务栏项目

+0

什么是不显示在任务栏中的进程?除此之外,您必须按照[本网站的规则]提供一些自己的内容(https://stackoverflow.com/help/how-to-ask)。 – HimBromBeere

+0

有没有简单的方法来做到这一点,所以你的问题是为什么你需要这些信息,因为你需要以不同的方式解决你的潜在问题 –

回答

3

没有官方的API直接列举任务栏项目,或者查询关于它们的任何细节。

  • 可见顶层无主窗口,或具有WS_EX_APPWINDOW扩展样式一个可见的窗口:

    任务栏按钮用于创建。这些窗口可以很容易地使用EnumWindows()回调来检查使用IsWindowVisible()每个可用窗口,GetParent()/GetWindow(GW_OWNER)GetWindowLongPtr(GWL_EXSTYLE)

  • 被添加到任务栏使用ITaskbarList::AddTab()手动一个窗口发现的。这些窗口不能枚举。我认为发现它们的唯一方法是用自定义的DLL实现替换标准的CLSID_TaskbarList COM对象,该实现截取所有进程中的所有ITaskbarList调用。

+0

可以使用[UI自动化](https://msdn.microsoft .com/en-us/library/windows/desktop/ff486375(v = vs.85).aspx)枚举任务栏按钮,并可能在添加或删除任务栏按钮时收听事件。 – zett42