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

我得到一位高手的帮助,他帮我做了下面这段程序,能实现向文本文档发送文本,我想用这段程序修改下实现向MicrosoftWord文档发送文本,还有向Windows的超级终端发... 我得到一位高手的帮助,他帮我做了下面这段程序,能实现向文本文档发送文本,我想用这段程序修改下实现向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
展开
 我来答
取名字严重难
2014-10-23 · TA获得超过1.2万个赞
知道大有可为答主
回答量:2081
采纳率:33%
帮助的人:859万
展开全部
你是WORD接收文字区域的句柄获取错了
WORD 2003第一级获取类名为OpusApp的掘宴句柄
第2是类名是_WwF
第三类名是_WwB
第四类名是_WwG
你这是用句柄的方式,VB SENDMESSAGE消游散兄息给句柄,我觉得有更简单的办法
VB可以直接引用神袭OFFICE去后台操作
追问
谢谢你的回答,窗口的句柄不是用findwindow函数获取的吗?那应该怎样改?还有请问VB可以直接引用超级终端去后台操作吗?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式