win7下设置TotalCommander为默认文件管理器

前几天刚看完viatc这个程序的介绍,又看到善用佳软在中科大的演讲,最后决定上了total commander(以下简称TC)这个贼船。

##设置Total commander为默认文件管理器
默认情况下TC没有提供设置为默认管理器的方法,翻遍了网上的教程,都只是在xp下的设置,无非就是设置文件夹的关联方式。在注册表HKCR\Folder\shell\open\command下。

##设置为默认管理器后控制面板打不开
但问题又来了,TC在win7下不支持控制面板的打开,很多子项目都无法打开。
在上面提到的注册表键值下,%1参数传递给目标程序。普通文件传递的就是文件的路径,而作为控制面板之类的虚拟文件传递的是::{xxx}类似的CLSID。
所以通过ahk对命令行参数的处理写了个启动器,算是解决了这个问题。
下面是ctotalcmd.ahk

Loop, %0%  ;对每个参数执行一次:
{
    param := %A_Index%
If param not contains ::{,.tib
        Run totalcmd.exe  /O /T /L="%param%"
    Else
        Run Explorer.exe %param%
    p=1
}
    if !p
        Run totalcmd.exe  /O /T 

与之对应的是另一个ahk小程序,安装/卸载totalcmd.ahk

RegRead, IsExp, HKEY_LOCAL_MACHINE, SOFTWARE\Classes\Folder\shell\open\command, DelegateExecute
If(IsExp="{11dbb47c-a525-400b-9e80-a54615a090c0}"){
    RegDelete HKEY_LOCAL_MACHINE, SOFTWARE\Classes\Folder\shell\open\command, DelegateExecute
    RegWrite, REG_EXPAND_SZ, HKEY_LOCAL_MACHINE, SOFTWARE\Classes\Folder\shell\open\command, , `"%A_WorkingDir%\cTOTALCMD.EXE`" `"`%1`"
    TrayTip,,cTotalCommader为默认文件管理器,2000
    Sleep ,1500
    }
Else{
    RegWrite, REG_EXPAND_SZ, HKEY_LOCAL_MACHINE, SOFTWARE\Classes\Folder\shell\open\command, DelegateExecute, {11dbb47c-a525-400b-9e80-a54615a090c0}
    RegWrite, REG_EXPAND_SZ, HKEY_LOCAL_MACHINE, SOFTWARE\Classes\Folder\shell\open\command, , `%SystemRoot`%\Explorer.exe
    TrayTip,,Explorer为默认文件管理器,2000
    Sleep ,1500
}

注意必须放在tc目录下使用,目前对于管理无线网络、字体管理无法打开,需要临时卸载。
仅限于win7,xp请参考@sunwind兄的文章

vim编辑运行ahk

vim中编辑ahk自然没问题,问题是怎样让错误信息输出到/回vim窗口。
善用佳软曾经在水木社区讨论过这个问题,可惜最后还是没有给出明确的解决方案。见此处

网上查了查其他语言的编译运行方式,发现问题焦点在正确设置makeprg上,关于makeprg请直接 :h makeprg
具体vimrc配置如下,出错自动打开quickfix

"自动补全的字典 配合acp插件自动补全
autocmd BufRead,BufNewFile *.ahk set dictionary+=$VIMvimfilesbundleautocomplpopdictahk.api
"设置makeprg程序 路径中空格要转义
autocmd BufRead,Bufnewfile *.ahk set makeprg="D:AutoHotKeyLAutoHotkey.exe" /ErrorStdOut %
"f5 f7
autocmd BufRead,Bufnewfile *.ahk map  :silent !"D:AutoHotKeyLCompilerAhk2Exe.exe" /in %
autocmd BufRead,Bufnewfile *.ahk map  :call MyMake()
"实现f5 make后自动打开quickfix的函数
function! MyMake()
       silent make
       redraw!
       for i in getqflist()
               if i['valid']
                       cwin
                       winc p
                       return
               endif
       endfor
endfunction

葛生

葛生蒙楚,蔹蔓于野。
予美亡此,谁与独处。

葛生蒙棘,蔹蔓于域。
予美亡此,谁与独息。

角枕粲兮,锦衾烂兮。
予美亡此,谁与独旦。

夏之日,冬之夜。
百岁之后,归於其居。

冬之夜,夏之日。
百岁之后,归於其室。

最佳chrome绿化方案——MyChrome+GreenChrome

这几天wp后台总是提醒"您的浏览器版本很低",就像M$提醒"您是盗版用户受害者

但是直接安装Chrome数据文件全部存储在C盘,作为轻度强迫的Geek自然是无法忍受的…网上绿化Chrome的方法一大堆,差不多有三种方法

1.用快捷方式指定目录(只能用快捷方式运行,外部调用无效)

2.使用启动器启动(首推MyChrome,但win7下锁定任务栏无效)

3.用msimg32.dll(首推GreenChrome,但没法自动升级)

当然,这样确实有些吹毛求疵。下面就说下使用GreenChrome和MyChrome,DIY可自动更新,可锁定到win7任务栏的绿色Chrome

首先,使用MyChrome安装好Chrome,注意用户数据文件放在 Chrome\Google\Chrome\User Data

然后,下载GreenChrome把msimg32.dll放到chrome.exe同目录,然后就没有然后了…

这样就可以使用MyChrome更新版本,也可以直接运行Chrome并固定在任务栏了。

MyChrome介绍请戳此处

GreenChrome请戳此处