后台发送消息
后台怎么激活其他程序文本框,怎么发消息,提示文本框内存保护。
我要发送的目标文本框原来显示“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 这个不行
[解决办法]
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