在DO中有接管WindowsExplorer对计算机中的文件进行管理的选项。TC(TOTALCMD)在启动方面(双击桌面启动、alt tab切换)有些弱,也未提供替换系统Explorer选项。
自己动手丰衣足食!要模仿DO的方式,自己修改注册表来实现TC代替系统的资源管理器。
废话少说,按*惯上菜,ahk脚本,一共两个脚本,第一个是用来设置用的,只是设置时运行而已,第二个脚本本不用运行,是由系统自动调用的:
第一个脚本,设置好下面代码中的Config段,运行一次, 替换掉或者取消替换系统的Explorer。
;Filename:OpenInTC.ahk
;操作系统:windows XP
;作者:sunwind(1576157)
;博客:http://blog.csdn.net/liuyukuan
;功能:xp系统下设置TC接管Explorer对计算机中的文件进行管理,本文件主要是修改注册表项,智能处理还需ExplorerHandler指向的ahk文件来处理。
;应用场景:本脚本只是设置用TC打开普通的文件夹;〔我的文档〕〔我的电脑〕〔网上邻居〕〔控制面板〕〔打印机和传真〕
;请用户配置Config中这两项!
Config:
AutoHotkey_path=x:\AutoHotkey\AutoHotkey\AutoHotkey.exe
;用来处理用户所点击文件夹信息的,智能需在ExplorerHandler对应的ahk文件中实现!
ExplorerHandler=X:\short\OpenInTC.ahk
Main:
regItem=OpenInTC
;引号 百分号 都需要转义符
regValue=`"%AutoHotkey_path%`" `"%ExplorerHandler%`" `"`%1`"
DirectoryShell:=getDirectoryShell(regItem)
Menu, MyMenu, Add,安装(&i)%regItem%,Label_Install
Menu, MyMenu, Add,卸载(&u)%regItem%,Label_UnInstall
Gui, Menu, MyMenu
Gui, Show,w500 h300, 当前DirectoryShell是%DirectoryShell% ; Show file name in title bar.
return
GuiClose: ; User closed the window.
ExitApp
Label_UnInstall:
RegWrite, REG_SZ, HKEY_CLASSES_ROOT, Directory\shell, , none
RegDelete,HKEY_CLASSES_ROOT, Directory\shell\%regItem%
MsgBox 卸载%regItem%完成
gosub,Main
return
Label_Install:
RegWrite, REG_SZ, HKEY_CLASSES_ROOT, Directory\shell, ,%regItem%
RegWrite, REG_SZ, HKEY_CLASSES_ROOT, Directory\shell\%regItem%, , Open in TotalCommand
RegWrite, REG_SZ, HKEY_CLASSES_ROOT, Directory\shell\%regItem%\command, ,%regValue%
MsgBox 安装%regItem%完成
gosub,Main
return
getDirectoryShell(regItem)
{
RegRead, DirectoryShell, HKEY_CLASSES_ROOT, Directory\shell,
If(DirectoryShell!=regItem)
SelectedFileName:="Explorer"
else
SelectedFileName:=DirectoryShell
return %SelectedFileName%
}
第二个脚本,设置好下面代码中的TC的目录,放在该放的位置,文件名也是要符合在上面文件中ExplorerHandler变量中所指定的:
;Filename:OpenInTC.ahk
;操作系统:windows XP
;作者:sunwind(1576157)
;博客:http://blog.csdn.net/liuyukuan
;功能:xp系统下设置TC接管Explorer对计算机中的文件进行管理,本文件接收到鼠标点击的文件夹,调用相关文件管理器来处理,可自行在此实现智能逻辑(需ahk基础,比如按着某键时才调用TC打开文件夹等等)。
;可以识别已存在标签,不重复打开标签脚本见http://blog.csdn.net/liuyukuan/article/details/8615735
;应用场景:用自己指定的文件管理器打开计算机中的文件夹。
TC:="m:\Total Commander\TOTALCMD.EXE"
Loop, %0% ;对每个参数执行一次:
{
param:= %A_Index%
if param<>
Run "%TC%" /O /T /P=L /L="%param%"
else
run explorer.exe ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}
}