怎样得到活动窗口中的光标所在的编辑框?
此活动窗口不是本程序内的窗体,是用 GetForegroundWindow 得到其句柄的.
现要进一步得到窗体内的焦点编辑框句柄,这是第一个问题,
第二个问题是如何向其发送汉字?
希望得到高手帮助,非常感谢.
[解决办法]
GetFocus api
SendMessage WM_SETTEXT
[解决办法]
不错就是这样
[解决办法]
Private Declare Function SendMessage Lib "user32 " Alias "SendMessageA " (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function GetFocus Lib "user32 " () As Long
Private Const WM_SETTEXT = &HC
Private Sub Timer1_Timer()
Dim h As Long
h = GetFocus
SendMessage h, WM_SETTEXT, 0, ByVal "asdf "
End Sub
[解决办法]
我来简单回答一下吧
关于SetFocus函数,据我所知,是无法得到其它进程的焦点的,也就是说,不能跨进程使用
不过你可以使用AttachThreadInput函数连接输入队列,然后再调用这个函数
只是有一个副作用,那就是在连接线程时,会重设键盘状态
以前我研究木马时,用到过这一招,嘿嘿
至于第二个问题,有好几种解决办法
一是对能响应并处理wm_settext/wm_gettext消息的控件,发送这两个消息
先得到原内容,然后加上现在的内容,写回去...就像QQ尾巴那样.....咳咳...
二是直接发送输入法消息,就是wm_ime_xxxxxxx那些....
不过这个我也没有做过..我只用过第一种那招..
[解决办法]
给word发,你还是引用word 对象,用VBA吧!
[解决办法]
获得系统中活动窗口句柄:
GetForegroundWindow
VB声明
Declare Function GetForegroundWindow Lib "user32 " Alias "GetForegroundWindow " () As Long
说明
获得前台窗口的句柄。这里的“前台窗口”是指前台应用程序的活动窗口
返回值
Long,前台窗口的句柄
注解
windows nt支持多个桌面,它们相互间是独立的。每个桌面都有自己的前台窗口
得到当前光标所在窗口的句柄
GetCursorPos
WindowFromPoint
[解决办法]
.........................