我正在制作一个C#WPF应用程序,每当用户点击我的应用程序之外的某个地方时,我想显示一个警告,点击该窗口的TITLE。要检测应用程序外的点击次数,我正在使用LowLevelMouseProc
。但是,我如何获得焦点在C#中的窗口?
提前致谢!
修改 我知道这与我原来的问题无关,但我如何才能集中控制?
答案 0 :(得分:6)
GetForegroundWindow应该这样做。
答案 1 :(得分:3)
关于如何通过焦点获得控件的后续问题,您可以使用GetGUIThreadInfo获得焦点控件的HWND。请注意,您将拥有外部窗口的线程传递给它,而不是外部窗口本身(函数文档告诉您如何从外部窗口句柄获取线程ID)。聚焦的HWND通过GUITHREADINFO.hwndFocus
成员返回。
请注意,通常,您不能比HWND做得更好,因为前台窗口不一定是.NET应用程序。例如,如果外部窗口是WPF窗口,则不会告诉您该窗口中的哪个WPF控件具有焦点,因为WPF控件不具有HWND。