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

后台发送消息,该如何解决

2012-05-28 
后台发送消息后台怎么激活其他程序文本框,怎么发消息,提示文本框内存保护。我要发送的目标文本框原来显示“1

后台发送消息
后台怎么激活其他程序文本框,怎么发消息,提示文本框内存保护。
我要发送的目标文本框原来显示“1234”,我在vb程序text1里要发送“7890”

SendMessage hwnd, EM_SETSEL, 0, -1
SendMessage hwnd, EM_REPLACESEL, 0, ByVal text1
文本框可以显示发送的文字,但马上就没有了,我VB程序的text1=“7890”居然显示要发送的文本框的内容“1234”原来“7890”变为“1234”。
要用手点击一下目标文本框有时行!大家帮助我分析一下,最好有代码!
SendMessageByString hwnd, WM_SETTEXT, 0&, ByVal text1 这个不行

[解决办法]

VB code
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long'将一个字符串发送到指定句柄的控件上去Private Sub subPostString(ByVal lngHandle As Long, ByVal strP As String)    Dim intP As Integer    Dim intK As Integer    Dim lngAsc As Long    Dim lngP As Long    Dim strT As StringOn Error GoTo errSub    For intP = 0 To Len(strP) - 1        strT = Mid(strP, intP + 1, 1)        If Asc(strT) <= 0 Then            lngAsc = AscW(StrConv(strT, 128))            If lngAsc < 0 Then                lngAsc = lngAsc + 65536 '2^16            End If        Else            lngAsc = Asc(strT)        End If        lngP = PostMessage(lngHandle, WM_CHAR, lngAsc, 0)    Next intP    Exit SuberrSub:End Sub 

热点排行