vb getwindowtext怎么用

如题所述

第一,这个函数的3个参数的意思如下:
1,hWnd:带文本的窗口或控件的句柄。
2,IpString:指向接收文本的缓冲区的指针(即内存地址)。
3,nMaxCount:指定要保存在缓冲区内的字符的最大个数。
第二,这个函数返回的不是窗口的标题,而是窗口的标题的字符个数。
第三,这里的缓冲区就是一段内存,用来暂存窗口的标题。
第四,缓冲区的长度就是要获取窗口的标题的多少个字符。
所以你要使用这个函数需要提供(窗口的句柄,暂存区的指针,要获取字符的数目),
至于这些参数怎么获得,我也不太懂了。
希望能对你有帮助.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-28
Declare
Function
GetWindowText
Lib
"user32"
Alias
"GetWindowTextA"
(ByVal
hwnd
As
Long,
ByVal
lpString
As
String,
ByVal
cch
As
Long)
As
Long
GetWindowText
定义
ByVal
lpString
As
String
'可以看出这个按址传递的,你应该也就知道为什么要先建个缓冲区了!它会把名字返回到这个地址里,不然就会,内存不能为写.
ByVal
cch
As
Long
,这个就是你要定义字符串的长度!不包括终止符,对于一个按址传递的内存块,它不能知道大小!让你传给它!也可以快速存到你指定的位置,不至于溢出!
s
=
String(255,
0)'这个是为S分配255个空间,并用0填充,0其实也就是终止符
If
a
<>
0
Then
MsgBox
s
Else
MsgBox
"获取出错"
写成多行就是
If
a
<>
0
Then
MsgBox
s
else
MsgBox
"获取出错"
end
if
应该可以看出了吧!是正确的
函数说明
hwnd
-----------
Long,欲获取文字的那个窗口的句柄
lpString
-------
String,预定义的一个缓冲区,至少有cch+1个字符大小;随同窗口文字载入
cch
------------
Long,lpString缓冲区的长度
返回
Long,复制到lpString的字串长度;不包括空中止字符。会设置GetLastError
返回的只是这个函数复制了几个字符,也就是复制到lpString
指向的地址了多少个字符
可以修改,但是你写的有点错
lpString是不是可以随便分配各大小
,比如
s=string(201,0),然后a
=
GetWindowText(Me.hwnd,
s,
200)
?
这样才可以
lpString
-------
String,预定义的一个缓冲区,至少有cch+1个字符大小;随同窗口文字载入