获取当前具有输入焦点控件的窗口句柄

参考文档:http://blog.csdn.net/ribut9225/article/details/21620139

获取当前具有输入焦点控件的窗口句柄

由于GetFocus只能本身进程调用,所以必须调用AttachThreadInput函数附加线程

HWND wnd;//窗口句柄
wnd=GetForegroundWindow();//获得当前激活的窗口句柄
DWORD SelfThreadId=GetCurrentThreadId();//获取本身的线程ID
DWORD ForeThreadId=GetWindowThreadProcessId(wnd,NULL);//根据窗口句柄获取线程ID
AttachThreadInput(ForeThreadId,SelfThreadId,true);//附加线程
wnd=GetFocus();//获取具有输入焦点的窗口句柄
AttachThreadInput(ForeThreadId,SelfThreadId,false);//取消附加的线程
SendMessage(wnd,WM_CHAR,WPARAM('a'),0);//发送一个字消息

原文地址:https://www.cnblogs.com/lhwblog/p/6675088.html