马上加入TC
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 剑仙十号 于 2017-6-7 16:54 编辑
得到鼠标所在窗口的句柄:
var hwnd = 窗口获取鼠标所在句柄()
得到键盘焦点的控件句柄,tc使用哪个命令?
说得明白一些:
获取键盘输入焦点的控件的句柄。带有闪烁光标的,可以输入字符的窗口,的句柄。
如游戏窗口的喊话栏,
记事本的编辑框,
系统计算器的输入框。
=======================================================
重要。获取活动窗口输入焦点控件句柄的方法。
作者:leevans
发表于2012/3/4 15:31:14 1724人阅读
分类: SDK/API
GetForegroundWindow函数只能获取Windows当前焦点窗口(也可以叫顶层窗口)的句柄,如果需要获取该窗口中焦点控件句柄,就需要用到下面这段代码:
HWND hForeWnd = GetForegroundWindow();//获得当前激活的窗口句柄
DWORD dwSelfThreadId = GetCurrentThreadId();//获取本身的线程ID
DWORD dwForeThreadId = GetWindowThreadProcessId(hForeWnd, NULL);//根据窗口句柄获取线程ID
AttachThreadInput(dwForeThreadId, dwSelfThreadId, true);//附加线程
HWND hFocus = GetFocus();//获取具有输入焦点的窗口句柄
AttachThreadInput(dwForeThreadId, dwSelfThreadId, false);//取消附加的线程
hFocus就是焦点控件的句柄。
需要说明的一点,在测试过程中,以上代码对网页不起作用,其它窗口OK!
另外需要提醒一下,
GetForegroundWindow 和 GetActiveWindow 函数的区别:
GetActiveWindow 只是获取当前程序中(严格地说是线程中)被激活的窗口
GetForegroundWindow 是获取当前系统中被激活的窗口
两个函数的级别是不一样的, 一个是线程级、一个是系统级。
0 0
上一篇 下一篇
书评:
GetActiveWindow 只是获取当前程序中(严格地说是线程中)被激活的窗口。如主窗口,子窗口,孙窗口三者当中,被激活的那一个。
获取程序_线程队列中,被激活的窗口。
.
GetForegroundWindow 是获取当前系统中被激活的窗口。就是前台窗口_的主窗口。
获取系统_窗口队列中,被激活的窗口。
.
两个函数的级别是不一样的, 一个是线程级,一个是桌面级,系统级。
|