批量修改文件夹图标

一个ahk脚本,主要功能是自动寻找文件夹下的exe或ico,并设置为默认文件夹图标。
测试环境是win7 x86,其他系统请自测。
文件已经托管在github上folder icon changer
用法很简单:直接拖拽文件夹到脚本上即可
”详细”的说明见readme


##A script to change folders icon once
An autohotkey script,the main function is change the icon of folders with the *.exe *.ico in the folder.
script is tested in win7 x86, please make your own test.
you can get the script on github folder icon changer
read the readme for more information.

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请戳此处