GetForegroundWindow获取的是托管进程ApplicationFrameHost,而不是真正的进程,比如XD软件

时间:2023-12-04 23:28:02

问题描述

  最近做一个实时检测系统当前激活进程的软件,Photoshop、PPT、Word都没有问题,但是无法检测到XD软件的进程,返回的仅仅是ApplicationFrameHost进程,经过研究发现:XD软件被进程ApplicationFrameHost托管, 因此GetForegroundWindow()方法返回带有标题的窗口,但不返回托管的实际进程,

解决思路

  解决方法是再次通过EnumChildWindows获取ApplicationFrameHost的子窗口句柄,直到获取到实际进程。

代码:

  GitHub :https://github.com/qiuxianhu/WinFormGetActiveProcess

  CSDN: