返回有输入焦点的窗口句柄(一般为控件)
HWND GetFocus(); |
如果要返回其他程序的活动控件,源码如下(DELPHI)
// 获取屏幕上活动窗口中,具有输入焦点的控件句柄 function TForm1.GetActiveEdit : HWND; var h : HWND; FormThreadID, CWndThreadID : DWORD; begin result := 0; // 得到当前活动窗口 h := GetForegroundWindow; if (h = Handle) then begin result := GetFocs; exit; // 排除程序本身的窗口 end; // 本程序的线程ID FormThreadID := GetCurrentThreadId; // 当前窗口的线程ID CWndThreadID := GetWindowThreadProcessId(h, nil); // 附加输入线程 AttachThreadInput(CWndThreadID, FormThreadID, true); // 得到当前键盘光标所在的窗口 result := GetFocus; // 取消附加的输入线程 AttachThreadInput(CWndThreadID, FormThreadID, false); end; |