windows的explorer极客版 —— Tablacus Explorer 分组多标签文件管理器

Tablacus 可能不是最好的文件管理器,但他一定是最好的explorer的替代品。建议平时临时打开文件夹就用原生 explorer 自带的,需要持久化标签页时,就用 Tablacus !

他和explorer用的是同一套技术。列表控件和自带文件管理器相差无几。外壳则基于ie或其他浏览器引擎。

外壳和扩展都是基于HTML/js/css写的。所以他也适合喜欢调整代码的极客使用。他有很多插件扩展,是原作者漫长时间处理用户issue积累的宝库,插件本身就是学习资料。

优点1:十分小巧

加上81个扩展,小于3MB。本体只有700KB。

优点2:高度可编程

  • tablacus 本体完全开源。
  • 外壳都是 html/css/js
  • 插件也是。插件就是学习资料。
  • 这种嵌入ie的都可以用 AHK 调用com接口,分析dom或者执行任意JScript脚本。
  • 据说可以更换浏览器引擎
  • 据说可以在wine上运行。

优点3:与 AHK 脚本通信,运行JScript

例如:AHK中获取当前的文件选择,并复制文件名到剪贴板:(同时支持 Tablacus 以及原生 explorer 文件管理器!)

python 复制代码
GroupAdd, texp_gp, ahk_exe TEd32.exe
GroupAdd, texp_gp, ahk_exe TEd64.exe
GroupAdd, texp_gp, ahk_exe explorer.exe

WBGet(hwnd, Svr:=1) {               ;// based on ComObjQuery docs
    msg := DllCall("RegisterWindowMessage", "str", "WM_HTML_GETOBJECT")
         IID1 := "{0002DF05-0000-0000-C000-000000000046}"	; IID_IWebBrowserApp
		 IID2 := "{332C4427-26CB-11D0-B483-00C04FD90119}"	; IID_IHTMLWindow2
   SendMessage msg, 0, 0, Internet Explorer_Server1, ahk_id %hwnd%
   if (ErrorLevel != "FAIL") {
      lResult:=ErrorLevel, VarSetCapacity(GUID,16,0)
      if DllCall("ole32\CLSIDFromString", "wstr","{332C4425-26CB-11D0-B483-00C04FD90119}", "ptr",&GUID) >= 0 {
         DllCall("oleacc\ObjectFromLresult", "ptr",lResult, "ptr",&GUID, "ptr",0, "ptr*",pdoc)
			return	ComObj(9,ComObjQuery(pwb:=ComObjQuery(pdoc,IID1,IID1),IID2,IID2),1)
				,	ObjRelease(pdoc), ObjRelease(pwb)
      }
   }
}


#IfWinActive, ahk_group texp_gp 
F1::
    hwnd := WinExist("A")
    window := WBGet(hWnd)
    IfWinActive ahk_exe explorer.exe 
    {
        Selection := Window.Document.SelectedItems
    } else {
        Selection := window.te.Ctrl(CTRL_FV).SelectedItems.Count
    }
    Path_to_Selection := ""
    for Items in Selection
        Path_to_Selection .= Items.path "`n"
    MsgBox % Path_to_Selection
    clipboard := Path_to_Selection
    ;消息("已复制" Selection.Count "项", "w500")
    return
return
#IfWinActive

和AHk增强explorer的方式如出一辙。这种基于ie的嵌入的可以这样调用:

js 复制代码
   IfWinActive ahk_exe explorer.exe  ; 如果是原生文件管理器!
   {
       Selection := Window.Document.SelectedItems
   } else { ; 否则就是 tabacus!
       Selection := >window.te.Ctrl(CTRL_FV).SelectedItems.Count
   }

其中 AHK,代码 window.te.Ctrl(CTRL_FV)

对应于Jscript,也也就是任意插件的 script.js 中te.Ctrl(CTRL_FV) 获取的就是当前的文件列表的视图控件(至于控件的方法属性,参考诸多插件即可。)。

其实,插件挂到window对象的function和变量都可以被 AHK 访问。sync.js 需要挂到 MainWindow 上面。script.js 直接挂到 window 即可。

还能直接获取返回值:(但是好像不能直接返回数组?)

js:

window.test = function(){return 1;}

ahk:

msgbox % window.test()

这种顺滑如丝跨语言调用,不知道甩Java几百条街,使得 AHK 像 python 一样成为一门极为好用的胶水语言 和强大的用户脚本引擎

相关推荐
美酒没故事°20 小时前
Open WebUI安装指南。搭建自己的自托管 AI 平台
人工智能·windows·ai
一个欠登儿程序员1 天前
在国产服务器上通过 Docker 部署 Windows 虚拟机
服务器·windows·docker
爱宇阳1 天前
WSL2 隔离 Windows PATH 实战指南
windows·环境变量
ALex_zry1 天前
C++模板元编程实战技巧
网络·c++·windows
I疯子1 天前
2026-04-08 打卡第 5 天
开发语言·windows·python
一个人旅程~1 天前
旧笔记本电脑安装win10精简版LTSB&win10LTSC&linuxmint作为三系统的操作指导书(以DELL n4020为例)
linux·windows·经验分享·电脑
开开心心就好1 天前
支持自定义名单的实用随机抽签工具
windows·计算机视觉·计算机外设·excel·散列表·启发式算法·csdn开发云
dyj0951 天前
OpenClaw小龙虾本地部署【Windows系统 + 接入飞书】
windows·飞书
CresCent_Charles1 天前
(已解决)踩坑记录:Windows 11安装pointops编译时报错
windows
skywalk81631 天前
Windows下安装编译安装Whisper-CPP:一个语音实现框架集和高性能推理模型
人工智能·windows·whisper