大哥大姐帮忙啊,小弟被这个问题缠了好久了……(等待)

hesicong hesicong 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
Private Const LVM_FIRST As Long = &H1000
Private Const LVM_GETITEMCOUNT As Long = (LVM_FIRST + 4)
Private Const LVIS_SELECTED As Long = &H2
Private Const LVM_GETITEMSTATE As Long = (LVM_FIRST + 44)
'Private Const LRESULT As Long = LONG_PTR
Private Type LVITEM
mask As Long
iItem As Long
iSubItem As Long
state As Long
stateMask As Long
pszText As String
cchTextMax As Long
iImage As Long
lParam As Long
iIndent As Long
End Type
Private Const LVIF_TEXT As Long = &H1


Private Const LVM_GETITEMTEXTW As Long = (LVM_FIRST + 45)
Private Const LVM_GETITEMTEXTA As Long = (LVM_FIRST + 115)
Private Const MAX_PATH As Long = 260

Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long


Private Sub Command1_Click()
Me.Show
r2= '一个syslistview32控件的句柄
r3 = SendMessage(R2, LVM_GETITEMCOUNT, 0, 0)
Dim aLVITEM As LVITEM

Cls
astr = String$(128, Chr$(0))
aLVITEM.pszText = astr
aLVITEM.cchTextMax = Len(astr)
' Get the subitem's text
SendMessage R2, LVM_GETITEMTEXTA, 1, aLVITEM
astr = Left$(aLVITEM.pszText, InStr(aLVITEM.pszText, Chr$(0)) - 1)
Debug.Print astr
End Sub

Private Sub Form_Load()
Command1_Click
End Sub

这个程序是用来得到一个syslistview32控件内容的程序,我能够成功得到列表的数量(r3),但是用sendmessage取得指定项的内容的时候那个正被操作的程序就非法操作推出了,astr为空。不知道是为什么取得列表数量(getitemcount)时没问题,后来的getitemtexta就有问题了哪?小生见识浅薄望高人指教!
...全文
评论 4
收藏 已收藏
分享
返回顶部
hesicong
API 1,488 成员 23,270 内容