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

Ali*_*ini 3 .net c windows

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

谢谢

Mat*_*lia 5

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

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

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

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