当前位置:  开发笔记 > 编程语言 > 正文

C# - 获取打开的任务列表

如何解决《C#-获取打开的任务列表》经验,为你挑选了2个好方法。

我正试图找到一种方法来获取C#中的开放任务.我一直在谷歌搜索,只能找到如何获得进程列表.我想要唯一会出现在任务栏上的任务.

此外,如果我能够获得与任务相关联的过程,那将是很酷的.如果可能的话,获取Vista用于ALT-TAB菜单的缩略图,如下图所示:

使用Alt-Tab

我假设我将不得不使用pinvokes,因为它看起来真的不像有任何库已经这样做了.有任何想法吗?



1> Asher..:

从API(Win32)的角度来看,没有任务(至少不是Windows任务管理器/ Alt-Tab显示的那个).

那些"任务"实际上是顶级窗口.

因此,为了获得这些列表,您需要枚举窗口(这里是PInvoke).

然后查看窗口的样式以确定它们是否实际上是顶级窗口.



2> Maurice Flan..:

这篇文章应该告诉你到底要做什么,它展示了如何构建自己的任务开关,并包括枚举所有窗口并确定它们是否是"任务"所需的代码,它向您展示了如何使用PrintWindow api来获取关于XP的预览.

http://msdn.microsoft.com/en-us/library/ms997649.aspx

此外,这是一篇博客文章,讨论用于确定Alt + Tab视图中显示内容的算法.基本上你需要检查WS_EX_APPWINDOW和WS_EX_TOOLWINDOW以及窗口是否拥有所有者.

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有