欢迎光临散文网 会员登陆 & 注册

用 AutoHotkey 在资源管理器中显示即时搜索框

2021-12-10 21:53 作者:-l0_0l-  | 我要投稿

目录

1 界面

界面和启动器一样,只是位置和大小变了下。

2 数据

  • 先从资源管理器中获取路径

    • MouseGetPos 可以获取到地址栏的控件类名

    • ControlGetText 从控件中获取文本

  • Loop Files 遍历文件

    • 通过 A_LoopFileAttrib 过滤掉系统文件之类

    • A_LoopFileName 文件名

3 交互

想要和 Listary 的即时搜索一样:

  1. 切换选项时,资源管理器也会选中相应的文件

  2. 点击选项后,在当前资源管理器中打开对应的目录/文件

关于 1 ,一开始以为资源管理器中的文件列表类似 AutoHotkey 的 ListView , 然后就搜索到了 Windows 的 ListBox ,于是尝试:

SendMessage LB_SELECTSTRING, -1, "<search-word>", "DirectUIHWND2", "ahk_class CabinetWClass"

结果没反应。。。后来知道有「IAccessible」这种东西,也知道有 AccV2.ahk 。但即使有别人写好的库,了解这些也挺麻烦的。 于是, 1 砍掉。

2 这个应该也是和「IAccessible」有关的,这里模拟键盘输入取了个巧:

  • ControlFocus("ToolbarWindow323", "ahk_class CabinetWClass") 设置焦点到地址栏

  • Send "{Enter}" 后可编辑地址

  • SendText Path

  • Send "{Enter}"


用 AutoHotkey 在资源管理器中显示即时搜索框的评论 (共 条)

分享到微博请遵守国家法律