我需要当前打开的应用程序(那些出现在任务栏中的应用程序)而不是当前正在运行的进程。
谢谢
最佳答案
您需要枚举所有顶级窗口(使用EnumWindows 函数);你必须跳过:
- 不可见窗口(查看IsWindowVisible函数的返回值或直接查看窗口是否为WS_VISIBLE风格);
- 具有扩展样式 WS_EX_TOOLWINDOW 的窗口,除非它们也具有 WS_EX_APPWINDOW 扩展样式。
所有其他的应该是任务栏中显示的那些(here 是完整的故事)。
然后,如果你想获得拥有每个窗口的进程/线程,你可以使用GetWindowThreadProcessId功能。
关于.net - 如何使用c++或vb.net在windows中获取当前打开的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2125451/