在DO中有经受WindowsExplorer对计较机中的文件举办打点的选项。TC(TOTALCMD)在启动方面(双击桌面启动、alt tab切换)有些弱,也未提供替换系统Explorer选项。
本身动手人给家足!要仿照DO的方法,本身修改注册表来实现TC取代系统的资源打点器。
空话少说,按老习惯上菜,ahk剧本,一共两个剧本,第一个是用来配置用的,只是配置时运行罢了,第二个剧本本不消运行,是由系统自动挪用的:
第一个剧本,配置好下面代码中的Config段,运行一次, 替换掉可能打消替换系统的Explorer。
;Filename:OpenInTC.ahk
;操纵系统:windows XP
;作者:sunwind(1576157)
;博客:
;成果: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)
;博客:
;成果:xp系统下配置TC经受Explorer对计较机中的文件举办打点,本文件吸收到鼠标点击的文件夹,挪用相关文件打点器来处理惩罚,可自行在此实现智能逻辑(需ahk基本,好比按着某键时才挪用TC打开文件夹等等)。
;可以识别已存在标签,不反复打开标签剧本见
;应用场景:用本身指定的文件打点器打开计较机中的文件夹。
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}
}
版权声明:本文为博主原创文章,未经博主答允不得转载。