无忧启动论坛

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

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

[复制链接]
跳转到指定楼层
1#
发表于 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 被置空.

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


2#
发表于 2025-1-6 09:18:26 | 只看该作者
学习学习,感谢分享。
回复

使用道具 举报

3#
发表于 2025-1-6 11:08:31 | 只看该作者
感谢分享
回复

使用道具 举报

4#
发表于 2025-1-6 11:22:39 来自手机 | 只看该作者
下载了图片上传一下,人家那边不允许外链图片。
回复

使用道具 举报

5#
发表于 2025-1-6 11:48:53 | 只看该作者
学习一下
回复

使用道具 举报

6#
发表于 2025-1-6 12:47:14 | 只看该作者
猜测“变量名”不是字符串,不能直接msgbox

点评

AHK是一种脚本,不像高级语言种要求那么严格,所以张三李四随便啥起个代号都能当变量名,不懂不要瞎说。  发表于 2025-1-7 08:25
快拉倒吧,一听说话就是外行。  发表于 2025-1-6 13:08
回复

使用道具 举报

7#
发表于 2025-1-6 13:42:35 | 只看该作者
SysListView321
回复

使用道具 举报

8#
发表于 2025-1-6 14:43:51 | 只看该作者
来看看了
回复

使用道具 举报

9#
发表于 2025-1-6 18:02:58 | 只看该作者
学习一下
回复

使用道具 举报

10#
发表于 2025-1-6 18:03:11 | 只看该作者
看看
回复

使用道具 举报

11#
发表于 2025-1-6 19:04:36 | 只看该作者
我来看答案
回复

使用道具 举报

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

点评

所以ahk自带的SPY 或 Spy4Win都探测不到。。2.0的正常?  发表于 6 天前
回复

使用道具 举报

13#
发表于 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. }
复制代码
回复

使用道具 举报

14#
发表于 6 天前 | 只看该作者
ControlGet参数较多,还不会
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-1-15 00:43

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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