如何使用c + +或vb.net获取当前打开的应用程序在Windows中?

我需要当前打开的应用程序(那些出现在任务栏中),而不是当前正在运行的进程。

谢谢

您需要枚举所有顶层窗口(使用EnumWindows函数); 你必须跳过:

  • 不可见的窗口(检查IsWindowVisible函数的返回值,或直接检查窗口是否具有WS_VISIBLE风格);
  • 窗口的扩展风格WS_EX_TOOLWINDOW,除非它们也具有WS_EX_APPWINDOW扩展风格。

所有其他的应该是任务栏中显示的那个( 这里是完整的故事)。

然后,如果你想获得拥有每个窗口的进程/线程,可以使用GetWindowThreadProcessId函数。