读书人

VB调用SendMessage导致程序崩溃

发布时间: 2012-09-29 10:30:01 作者: rapoo

求助:VB调用SendMessage导致程序崩溃
我想用SendMessage跨进程获取文本框中的文字,之前我已经获得了正确的句柄。
源代码:

VB code
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongConst WM_GetText As Long = 13Public Function subSendMyMsg(lngHwnd As Long) As String    On Error Resume Next1    Dim strWord As String2    strWord = String(255, Chr(0))3    Call SendMessage(lngHwnd, WM_GetText, 255, strWord)4    subSendMyMsg = Left(strWord, InStr(1, strWord, Chr(0)) - 1)End Function

其中lngHwnd为传入的句柄,WM_GetText已定义为13。
当程序运行到第4行时,如果是IDE调试则系统崩溃,如果是EXE则程序会崩溃退出。
求大家帮忙解决,谢谢!

[解决办法]
首先将你的On Error Resume Next 语句改为On Error GoTo 语句,再使用GetLastError捕获一下错误看看是什么错误?
[解决办法]
第三句修改为
VB code
Call SendMessage(lngHwnd, WM_GetText, 255, Byval strWord)
[解决办法]
http://bbs.bccn.net/thread-309935-1-9.html

读书人网 >VB

热点推荐