无忧启动论坛

标题: AutoHotkey ControlGet 命令有几个参数没有效果呢? [打印本页]

作者: tt911    时间: 2025-1-6 09:11
标题: AutoHotkey ControlGet 命令有几个参数没有效果呢?
https://wyagd001.github.io/zh-cn/docs/lib/ControlGet.htm
参考上面


打开资源管理器=》文件夹选项=》查看

[img ]https://attach.52pojie.cn/forum/202501/03/124719ua6m64gh0zaa0kk0.png[/img]

ControlGet,变量名, List, Selected, SysTreeView321, 文件夹选项
MsgBox,%变量名%

Selected        仅获取选择(高亮) 行而不是所有行. 如果没有, OutputVar 被置空.

按表中的参数,该得到选中的这一项值才对啊,咋啥也没有得到尼?



作者: 忧心的启    时间: 2025-1-6 09:18
学习学习,感谢分享。
作者: zqfeng01    时间: 2025-1-6 11:08
感谢分享
作者: 窄口牛    时间: 2025-1-6 11:22
下载了图片上传一下,人家那边不允许外链图片。
作者: 一扎坪    时间: 2025-1-6 11:48
学习一下
作者: zhangmi    时间: 2025-1-6 12:47
猜测“变量名”不是字符串,不能直接msgbox
作者: yxldh    时间: 2025-1-6 13:42
SysListView321
作者: guong    时间: 2025-1-6 14:43
来看看了
作者: nianyueriPE    时间: 2025-1-6 18:02
学习一下
作者: nianyueriPE    时间: 2025-1-6 18:03
看看

作者: 2012fengxi    时间: 2025-1-6 19:04
我来看答案
作者: zhangmi    时间: 2025-1-7 09:33
根据你的语法上看,是V1版本。我用的是V2,所以我说猜测,是我不太愿意专门去下载一个v1来测试,并不是说我不了解ahk。
ahk是动态语言,但是它对于数组、对象这些,msgbox并不支持。controlgetlist--V2是这种写法,它返回的并不是字符串,而是对象。在ahk中,对象是不能直接msgbox的,仅此而已


作者: zhangmi    时间: 6 天前
你的图片看不到,不清楚你的需求是啥。
如果是要定位控件,可以试试ACC或者UIA,这两个都有v1和v2版本。
如果是controlget写法,可以参考以下code,v1版本的写法
  1. Explorer_GetSelection(hwnd="")   
  2. {  
  3.     WinGet, process, processName, % "ahk_id" hwnd := hwnd? hwnd:WinExist("A")  
  4.     WinGetClass class, ahk_id %hwnd%  
  5.     if (process != "explorer.exe")  
  6.         return  
  7.     if (class ~= "Progman|WorkerW") {  
  8.             ControlGet, files, List, Selected Col1, SysListView321, ahk_class %class%  
  9.             Loop, Parse, files, `n, `r  
  10.                 ToReturn .= A_Desktop "" A_LoopField "`n"  
  11.         } else if (class ~= "(Cabinet|Explore)WClass") {  
  12.             for window in ComObjCreate("Shell.Application").Windows
  13.                         {
  14.                                 try{
  15.                 if (window.hwnd==hwnd)  
  16.                     sel := window.Document.SelectedItems  
  17.                                 }catch e {
  18.                                         continue
  19.                         }
  20.                         }
  21.             for item in sel  
  22.                 ToReturn .= item.path "`n"  
  23.         }  
  24.     return Trim(ToReturn,"`n")  
  25. }
复制代码

作者: 2012fengxi    时间: 6 天前
ControlGet参数较多,还不会




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3