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

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

由于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);//发送一个字消息

你可能感兴趣的:(Win,API)