找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 2591|回复: 16

[求助] AutoHotkey ControlGet 命令有几个参数没有效果呢?

[复制链接]
发表于 2025-1-6 09:11:09 | 显示全部楼层 |阅读模式
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:26 | 显示全部楼层
学习学习,感谢分享。
回复

使用道具 举报

发表于 2025-1-6 11:08:31 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 2025-1-6 11:22:39 来自手机 | 显示全部楼层
下载了图片上传一下,人家那边不允许外链图片。
回复

使用道具 举报

发表于 2025-1-6 11:48:53 | 显示全部楼层
学习一下
回复

使用道具 举报

发表于 2025-1-6 12:47:14 | 显示全部楼层
猜测“变量名”不是字符串,不能直接msgbox
回复

使用道具 举报

发表于 2025-1-6 13:42:35 | 显示全部楼层
SysListView321
回复

使用道具 举报

发表于 2025-1-6 14:43:51 | 显示全部楼层
来看看了
回复

使用道具 举报

发表于 2025-1-6 18:02:58 | 显示全部楼层
学习一下
回复

使用道具 举报

发表于 2025-1-6 18:03:11 | 显示全部楼层
回复

使用道具 举报

发表于 2025-1-6 19:04:36 | 显示全部楼层
我来看答案
回复

使用道具 举报

发表于 2025-1-7 09:33:25 | 显示全部楼层
根据你的语法上看,是V1版本。我用的是V2,所以我说猜测,是我不太愿意专门去下载一个v1来测试,并不是说我不了解ahk。
ahk是动态语言,但是它对于数组、对象这些,msgbox并不支持。controlgetlist--V2是这种写法,它返回的并不是字符串,而是对象。在ahk中,对象是不能直接msgbox的,仅此而已

回复

使用道具 举报

发表于 2025-1-9 11:04:06 | 显示全部楼层
你的图片看不到,不清楚你的需求是啥。
如果是要定位控件,可以试试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. }
复制代码
回复

使用道具 举报

发表于 2025-1-9 14:13:12 | 显示全部楼层
ControlGet参数较多,还不会
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-5-23 00:45

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表