首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

怎样得到活动窗口中的光标所在的编辑框?该怎么解决

2012-01-13 
怎样得到活动窗口中的光标所在的编辑框?此活动窗口不是本程序内的窗体,是用GetForegroundWindow得到其句柄

怎样得到活动窗口中的光标所在的编辑框?
此活动窗口不是本程序内的窗体,是用   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



[解决办法]
.........................

热点排行