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

转载 2015年07月09日 10:16:01

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

相关文章推荐

GetFocus 获得拥有输入焦点的窗口的句柄

GetFocus VB声明 Declare Function GetFocus Lib "user32" Alias "GetFocus" () As Long 说明 获得拥有输入焦点的窗口...

VMware vSphere Client 解决 无法获取“”控件的窗口句柄。不支持无窗口的 ActiveX 控件

我在win7使用VMware vSphere Client管理vmware虚拟机,打开桌面“解决 无法获取“”控件的窗口句柄。不支持无窗口的 ActiveX 控件”  ,在网上搜了半天 找到http...

"在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke"

文章出处:http://www.cnblogs.com/hsapphire/archive/2010/10/21/1857421.html 哎,有接近半年的时候没有真正的写c#程序了,这段时...

取焦点窗口句柄模块

多线程委托之跨线程问题分析--在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke(解决方法已更新)

多线程委托之跨线程问题分析 今天在写一个程序测试运行跨线程同步的时候出一个异常信息。 异常信息:System.InvalidOperationException “在创建窗口句柄之前,不能在控件上调...

窗口句柄的获取

内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)