解决方案 »
- 用sql语句查询的一个问题
- VB中如何实现批量输入数据?
- 如何查找隐藏进程
- DataGrid如何实现从数据库读“数字”,然后在表格里显示相应的“汉字”?谢谢
- 我想生成体育彩票走势图这样的东西,该用什么做?该怎么做?
- VB改文件名用什么函数啊1!
- 为什么这句话错了
- 循环语句求教!!!字符串提取求教!!!谢谢!!!
- 请大家讨论页面"http://www.yxjh.net/pgread.php?pgid=101317&id=373&user=无畏者"的加密方式
- Help Me!
- 请问本人刚学vb ,想实现隔一秒显示一个汉字的程序
- 求助:保存PictureBoX()中的图片以及在图片上显示的标记点。(VB2008ExpressEdition)
错误2:申明的GetWindowText API函数中,第二个参数应该是Byval而不是Byref;第三个参数类型改为Long;返回值改为long (申明API函数最好是原型。)
错误3:form代码中hwnd改成Long(最好所有integer类型都改成Long
错误4:hwnd = FindWindow(vbNullString, "计算器") 改成
hwnd = FindWindow("计算器",vbNullString ) 错误5:Dim wndTitle As String 先申明长度 比如:Dim wndTitle As String *255
或者 Dim wndTitle As String
wndTitle = String(255, Chr$(0))
完整代码如下:Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal nMaxCount As Long) As LongPrivate Sub Command1_Click()
Dim hwnd As Long
Dim lenTitle1 As IntegerDim lenTitle2 As Integer
Dim wndTitle As String * 256'wndTitle = String(100, Chr$(0))
hwnd = FindWindow(vbNullString, "计算器")
lenTitle1 = GetWindowText(hwnd, wndTitle, 256)
lenTitle2 = Len(wndTitle)
End Sub
应该这样:
Dim wndTitle As String *256.........debug.print left(wndTitle,instr(1,wndTitle,chr(0))-1)'去掉尾部不可见字符
wndTitle = Space(256)
lenTitle1 = GetWindowText(hwnd, wndTitle, 256)
问题找到了。我竟然把GetWindowText的声明命,第一个参数hwnd as成了string
对不住大家了!!!