C#聚焦窗口

本文关键字:窗口 聚焦 | 更新日期: 2023-09-27 17:57:52

我正在制作一个C#WPF应用程序,每次用户单击我的应用程序之外的某个位置时,我都希望显示一个警告,并单击窗口的TITLE。为了检测应用程序外部的点击,我使用LowLevelMouseProc。但是我该如何获得C#中有焦点的窗口呢?

提前感谢!

编辑:我知道这与我最初的问题无关,但我该如何集中控制?

C#聚焦窗口

GetForegroundWindow应该这样做。

关于如何获得带焦点控件的后续问题,您可以使用GetGUIThreadInfo获得焦点控件的HWND。请注意,您将此传递给拥有外部窗口的线程,而不是外部窗口本身(函数文档告诉您如何从外部窗口句柄获取线程ID)。聚焦的HWND通过GUITHREADINFO.hwndFocus成员返回。

请注意,通常情况下,您不能比HWND做得更好,因为前台窗口不一定是.NET应用程序。例如,如果外部窗口是WPF窗口,这将而不是告诉您该窗口中的哪个WPF控件具有焦点,因为WPF控件没有HWND。