在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} }