Autohotkey ControlGet、List、Nots';t返回列表值

Autohotkey ControlGet、List、Nots';t返回列表值,autohotkey,Autohotkey,我试图使用ControlGet、List在AutoHotKey中获取listview的内容。这个列表视图位于我编写的一个简单的VB6应用程序中。我正在使用: ControlGet、List、List、ListViewWndClass1、WindowTitle ListViewWndClass1是我从ActiveWindowInfo获得的类名 当我查看列表的返回值时,它是空的。错误级别也是1 我还尝试: ControlGet,List,List,Selected,SysListView321,下载

我试图使用ControlGet、List在AutoHotKey中获取listview的内容。这个列表视图位于我编写的一个简单的VB6应用程序中。我正在使用:

ControlGet、List、List、ListViewWndClass1、WindowTitle

ListViewWndClass1是我从ActiveWindowInfo获得的类名

当我查看列表的返回值时,它是空的。错误级别也是1

我还尝试:

ControlGet,List,List,Selected,SysListView321,下载

获取资源管理器窗口的内容(下载),这返回一个ErrorLevel 1

你知道我做错了什么吗

我很乐意使用PostMessage/SendMessage或DllCall(“SendMessage”)来获取列表控件的内容


是否有人使用AHK成功获取listview控件的内容?

某些当前控件看起来像listview,但与旧的标准listview控件不同。 例如,Windows XP文件夹确实使用标准的列表视图,但Windows 7没有

假设您正在标准listview控件上使用最新版本的AutoHotkey, 它应该能够检索文本,除非它属于故意阻止的程序 检索文本(尽管您应该仍然能够获得listview项的计数)

如果AutoHotkey的AccViewer可以检索listview/listview类控件的文本, 这意味着您应该能够通过Acc.ahk及其函数检索它

如果控件是标准列表视图,则必须正确获取
ControlGet
参数,否则文本检索将无法工作:

;get window by title
ControlGet, vText, List, , SysListView321, Media Player Classic Home Cinema

;get window by class
ControlGet, vText, List, , SysListView321, ahk_class MediaPlayerClassicW

;get active window
ControlGet, vText, List, , SysListView321, A

;display the text
MsgBox %vText%

;put the text on the clipboard
Clipboard := vText

;e.g. get text via the Acc library
;note: requires Acc.ahk library in AutoHotkey\Lib folder
;https://github.com/Drugoy/Autohotkey-scripts-.ahk/blob/master/Libraries/Acc.ahk
;on right of screen right-click Raw, Save target as...

^q::
ControlGet, hCtl, Hwnd, , SysListView321, A
if !hCtl
Return
oAcc := Acc_Get("Object", "4", 0, "ahk_id " hCtl)
Loop, % oAcc.accChildCount
if (Acc_Role(oAcc, A_Index) = "list item")
vText .= oAcc.accName(A_Index) "`r`n"
Clipboard := vText
MsgBox %vText%
Return