jessylake 发表于 2021-5-30 13:19

VB中用PostMessage 往QQ对话框中逐字符发送字符串,但回车换行不行,怎么回事?

本帖最后由 jessylake 于 2021-5-30 21:18 编辑

Private Sub PostString(ByVal lngHandle As Long, ByVal strP As String)
Dim intP As Integer, t
Dim intK As Integer
Dim lngAsc As Long
Dim lngP As Long
Dim strT As String
On 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 Sub
errSub:
End Sub

字符串中有回车换行符 Chr(13) & Chr(10),其他字符都没问题,唯独这回车换行符不行,怎么回事?

Monitor 发表于 2021-5-30 13:39

QQ对话框是自绘方式的,正常来说如果是能发送到编辑框的换行符是能正常的,但是你的lngHandle是窗口的,所以是不起作用的

jessylake 发表于 2021-5-30 14:41

Monitor 发表于 2021-5-30 13:39
QQ对话框是自绘方式的,正常来说如果是能发送到编辑框的换行符是能正常的,但是你的lngHandle是窗口的,所 ...

问题是我的其他字符都没问题,就是回车换行不行,导致该断开的没断开,连成一起了

jessylake 发表于 2021-5-30 14:44

只是回车换行不行,其他字符都没问题。 用msgbox显示没问题,就是用PostMessage发送到QQ对话框中时,回车换行符发不出来

sfb 发表于 2021-5-30 18:12

vb那么复杂吗?小白一枚

jessylake 发表于 2021-5-30 21:17

自己解决了!
在原来WM_CHAR = &H102基础上
换个参数
WM_KEYDOWN = &H100

wldonglei 发表于 2021-8-14 19:14

jessylake 发表于 2021-5-30 21:17
自己解决了!
在原来WM_CHAR = &H102基础上
换个参数


请问,具体怎么解决的这个问题呢

Jack2002 发表于 2021-8-15 01:34

Ctrl+V不好吗?

wldonglei 发表于 2021-8-15 18:05

Jack2002 发表于 2021-8-15 01:34
Ctrl+V不好吗?

我这边测试的不好使,现在遇到一个问题:因为程序是在VPS上运行的,只要断开远程,模拟鼠标键盘的操作好像就停止了,不知道怎么解决
页: [1]
查看完整版本: VB中用PostMessage 往QQ对话框中逐字符发送字符串,但回车换行不行,怎么回事?