用VB做一段向任意窗口发送文本的程序

我得到一位高手的帮助,他帮我做了下面这段程序,能实现向文本文档发送文本,我想用这段程序修改下实现向Microsoft Word文档发送文本,还有向Windows的超级终端发送文本,但失败了,请高手帮忙看下出错在哪里,向Word中发送文本时,我把下面程序中的"无标题 - 记事本"改为了Word文档的“Doc1”(Spy++获得的父窗口的标题),把窗口编辑区的类名“Edit”改为了"_WwG"(用Spy++获得的),但是运行时提示“窗口没有运行”,不能把文本发送到Word里面,请问是哪里出错了?

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPrivate Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As LongPrivate Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Const WM_CLOSE = &H10Private Const WM_SETTEXT = &HCPrivate Const EM_REPLACESEL = &HC2 Private Sub Command1_Click()Static n As Integer '计数器Dim a() As String, wh As Long, ch As Long a = Split(Text1.Text, vbCrLf) '获取文本框内容,并按行分割If n <= UBound(a) Then '如果计数器没超过文本框行数 wh = FindWindow(vbNullString, "新建文本文档 - 记事本") If wh Then ch = FindWindowEx(wh, 0, "Edit", vbNullString) SendMessage ch, EM_REPLACESEL, 0, ByVal vbCrLf & a(n) Else MsgBox "窗口没有运行!" End If n = n + 1 '点一次按钮,计数器加1Else MsgBox "文本框文本发送已完成"End IfEnd Sub

你是WORD接收文字区域的句柄获取错了
WORD 2003第一级获取类名为OpusApp的句柄
第2是类名是_WwF
第三类名是_WwB
第四类名是_WwG
你这是用句柄的方式,VB SENDMESSAGE消息给句柄,我觉得有更简单的办法
VB可以直接引用OFFICE去后台操作追问

谢谢你的回答,窗口的句柄不是用findwindow函数获取的吗?那应该怎样改?还有请问VB可以直接引用超级终端去后台操作吗?

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答