用PostMessage 往QQ对话框中逐字符发送字符串,但回车换行不行?
vb吧
全部回复
仅看楼主
level 4
bjyfcx 楼主
'将一个字符串通过PostMessage传送出去
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),其他字符都没问题,唯独这回车换行符不行,怎么回事?
2021年05月30日 05点05分 1
level 13
可以匹配换行时,用PostMessage WM_KEYDOWN,13试试
2021年05月30日 07点05分 2
虽然我已经找到这个办法了,但依然要非常感谢你的热情帮助
2021年05月30日 13点05分
加个参数WM_KEYDOWN = &H100 ,然后判断lngAsc是否等于13或者10,我是在字符串中加了个 Chr(13) & Chr(10) 起到回车换行的作用,现在发现用WM_KEYDOWN时,无论13还是10都会换行,反而多换了一行,其实用一个就可以了
2021年05月30日 13点05分
@bjyfcx 不推荐在VB中用Chr(13) & Chr(10),因为会调用相关函数,vbCrLf替换Chr(13) & Chr(10)效果是一样的,这个不会调用函数,效率要高很多,chr只在必要时调用,对于回车换行是固定值就用vbCrLf
2021年05月31日 01点05分
2021年05月31日 12点05分
1