主题:怎么获得其他程序中拥有输入焦点的控件的句柄?
singlion
[专家分:690] 发布于 2008-07-08 23:09:00
应该使用哪个API函数?
回复列表 (共3个回复)
沙发
tanchuhan [专家分:15140] 发布于 2008-07-09 00:05:00
GetFocus只能获取本进程的输入焦点的窗口句柄
好像有个AttachThreadInput可用,不过我以前粗略试过下无效,可能是我使用的方法错了
另外,可用SetWindowsHookEx拦截相应消息,不过要写在DLL里面哦.
板凳
singlion [专家分:690] 发布于 2008-07-09 13:27:00
Declare Function AttachThreadInput Lib "user32" Alias "AttachThreadInput" (ByVal idAttach As Long, ByVal idAttachTo As Long, ByVal fAttach As Long) As Long
这些参数都是什么啊,看不懂
手册里的解释也看不懂
idAttach Long,欲连接线程的标识符(ID)
idAttachTo Long,与idAttach线程连接的另一个线程的标识符
fAttach Long,TRUE(非零)连接,FALSE撤消连接
有窗口句柄了,怎么得到标志符?是不是第一个参数是本程序的标志符?
3 楼
singlion [专家分:690] 发布于 2008-07-09 13:28:00
手册中的解释是:
通常,系统内的每个线程都有自己的输入队列。本函数(既“连接线程输入函数”)允许线程和进程共享输入队列。连接了线程后,输入焦点、窗口激活、鼠标捕获、键盘状态以及输入队列状态都会进入共享状态
那么使用这个函数之后,怎样往指定线程的拥有输入焦点的控件中输入内容
我来回复