[Windows编程] 使用AttachThreadInput 来捕捉其它窗口的键盘输入
2013-11-21 09:58
405 查看
在一些情况下(比如屏幕软键盘或者输入法程序),自己的窗口没有输入焦点但是想要当前焦点窗口的键盘输入消息,可以使用Win32 API函数AttachThreadInput()来解决这个问题。AttachThreadInput把一个线程(idAttach)的输入消息连接到另外线程(idAttachTo)。
函数定义:
BOOL WINAPI AttachThreadInput(
__in DWORD idAttach,
__in DWORD idAttachTo,
__in BOOL fAttach
);
用法示例:
AttachThreadInput(
::GetWindowThreadProcessId(::GetForegroundWindow(),NULL), //当前焦点窗口的线程ID
::GetCurrentThreadId(), //自己的线程ID
TRUE);
函数定义:
BOOL WINAPI AttachThreadInput(
__in DWORD idAttach,
__in DWORD idAttachTo,
__in BOOL fAttach
);
用法示例:
AttachThreadInput(
::GetWindowThreadProcessId(::GetForegroundWindow(),NULL), //当前焦点窗口的线程ID
::GetCurrentThreadId(), //自己的线程ID
TRUE);
相关文章推荐
- [Windows编程] 使用AttachThreadInput 来捕捉其它窗口的键盘输入
- [Windows编程] 使用AttachThreadInput 来捕捉其它窗口的键盘输入
- 利用 AttachThreadInput 改变其它进程的输入法状态
- 利用 AttachThreadInput 改变其它进程的输入法状态
- 将后台窗口激活到前台的方法(使用AttachThreadInput和SetForegroundWindow两个API)
- VC获取其它程序窗口焦点方法 AttachThreadInput的用法
- 编程实现对键盘输入的英文名句子进行加密。用加密方法为,当内容为英文字母时其在26字母中的其后三个字母代替该字母,若为其它字符时不变。
- 使用BIOS进行键盘输入【编程:字符串的输入】
- 从键盘任意输入一个数,不使用计算绝对值函数编程计算并输出该实数的绝对值
- Windows编程 基本资源的使用 如何在窗口中输出一些简单的文本
- 软键盘显示及属性android:windowSoftInputMode使用总结 & [转一篇]
- Windows编程 DirectInput 鼠标和键盘的输入
- TForm.ShowModal只是接管消息循环,禁止外部键盘和鼠标输入到别的窗口,但并不封锁其它窗口继续获取消息(比如WM_TIMER消息仍可被发送到别的窗口上)
- 使用 HTML5 input 类型提升移动端输入体验(键盘)
- 使用 HTML5 input 类型提升移动端输入体验(键盘)
- Windows平台下GCC编程之从键盘上输入一个3*3的整数矩阵,求其各行的平均值并输出,输出时保留两位小数
- android:windowSoftInputMode属性使用 软键盘
- 5.1 从键盘任意输入一个实数,不使用计算绝对值函数编程计算并输出该实数的绝对值
- 将窗口置顶的方法:SetWindowPos、AttachThreadInput、SwitchToThisWindow
- Windows平台下GCC编程之从键盘上输入一个3*4的整数矩阵,要求输出其最大元素的值,以及它的行号和列号