以简驭繁 弹指神通–超绝神器Candy小窥

作者:沙牛 2010年10月首发于沙牛之家

前言

如果你是一位设计人员,你可能会有这样的需求:对于一个图片文件,你有时需要用不同的软件去浏览它,比如ACDSee、Windows自带的图像浏览器、XnView等等,而有时候,你又需要用不同的软件去编辑它,比如ACDSee、Photoshop等等;而如果你是一位网页设计师,面对一个HTML文件,你有时可能需要用Notepad++、DreamWeaver、EmEditor去编辑它,更多时候,你还会用不同的浏览器,比如Chrome、IE6、IE8以及Firefox去测试它的兼容性。这时,你会怎么办?一般情况下,你会使用以下几种方式去完成这个需求:

  1. 双击运行,这会根据系统里设置的文件关联,使用默认的软件打开。
  2. 右键点击文件,并在打开方式中选择中意的软件。
  3. 打开软件,从软件中浏览器文件并打开。

或许平时你没有注意到这是个繁琐的过程,但当这个需求被提出,你不得不承认这确实够烦人的,但现在,有一种更为简便的方式,它能帮你实现以下的需求:当我选中一个目标,这个目标可能是一个文件夹、一个文本文档、一个配置文件或者一个磁盘,并发出一个指令,然后根据不同的类型,选用不同的方式(一种或多种)来打开。

这才是理想的文件打开方式,提供给用户最大的自由度,而且操作起来极其轻松快捷,这是何等的惬意!而这一切,Candy能帮我们实现。

Candy并不适用于所有人,它适用于:

  1. 有需要用多个程序打开一个文件需求的人。
  2. 觉得右键菜单的打开方式太过繁琐的人。
  3. 喜欢捣鼓软件的人。
  4. 喜欢使用快捷键和鼠标手势,并用它们来简化操作步骤的人。

Now,Let’s Candy!

1. Candy简介[返回目录]

Candy 是一款小巧的操作辅助型软件,由作者万年书妖使用AHK脚本开发,下载地址:来自沙牛之家 (206KB),本是为了满足自己的需求而开发,但后来公布到网上,时至今日,已经有越来越多的人使用并爱上了它,并且,万年书妖已经放出了Candy的源码,有兴趣的朋友可以下载研究一下。但是,不少人还是嫌它使用太麻烦,作为一个过来人,沙牛认为其原因有两点:不能独立运行;需要手动修改配置文件。诚然,沙牛在最初接触它的时候,也有狗啃南瓜—-无处下手的感觉,但静下心来慢慢琢磨一下,才发现Candy其实很简单,很易用。下面,沙牛会从最基础的配置入手,给大家详细讲述Candy的配置,相信看完本文后,你也会觉得:Candy其实很简单。

2. Candy使用指南[返回目录]

2.1 启动方式[返回目录]

或许你会觉得,启动不就是双击吗?这有多难?有必要单独列一个标题来说明吗?错!在此,沙牛郑重地告诉你:不少人觉得Candy难以入手,正是因为不了解它的启动方式,双击过后没反映,紧接着,发现还要手动修改配置文件,便放弃使用,这也就错过了一款何其经典的软件。不仅仅是Candy,因为这样而被放弃的软件,绝对不在少数。

不过话说回来,Candy还真算是一款启动方式非常独特的软件,之所以这样说,是因为:Candy不长跓内存,只在你需要它的时候,运行一下,执行完特定的操作,又自动退出,由此看出,Candy是一款在后台默默工作的软件,和沙牛一样,是多么的低调啊!-_-||| Candy的执行过程如下所示:

选中一个目标–>通过特定的方式启动Candy–>根据被选中目标的类型执行特定的操作–>Candy退出

如下所述,启动Candy需要使用“特定的方式”,那么,到底是那些方式呢?又为什么必需要通过这些方式呢?

这是因为,作为一款相当低调的辅助软件,Candy旨在对被选中的目标进行操作,注意,是被选中的目标,这就有一个问题,当你选中一个目标时,怎么去执行另一个目标呢?总不可能再去双击运行吧,那之前被选中的目标不就失去焦点了么?没错,因此,Candy必须通过以下方式来启动:

  1. 快捷方式的快捷键。你可以将Candy的快捷方式发送到桌面,或者是开始菜单中,然后对它设置一个快捷键(不少Candy粉丝都的F7,不过TC用户应该不会用这个的),按下这个快捷键,即可启动Candy,如下图:
  2. 鼠标手势软件。比如StrokeIt,可以增加一个手势,并设置为调用Candy,如下图:
  3. AHK等相关快捷键软件。可以通过设置快捷键等方式来调用Candy,沙牛则是采用StrokeIt和AHK的方式来调用Candy,这样的目的是做到鼠标和键盘都能独立操作。AHK脚本如下:

    ;调用Candy
    F7::
    Run, D:\candy\candy.exe /ini=candy.ini
    return

  4. 在TC里调用。相信这里的读者很多都是TC的忠实粉丝,而通过简单的配置,Candy便能在TC里游刃有余。
  5. 还有一些其他的软件也能调用Candy,比如HoeKey,沙牛没有接触过,不再赘述,方法都是大同小异。

关于启动方面,还有一点需要提醒的,或许你已经通过上面StrokeIt和TC的图注意到了,那就是在启动Candy时,需要带一个启动参数:/ini=*****。这是在为Candy运行时指定一个配置文件,当你有多个配置文件的时候比较有用。当然,如果你只需要一个配置文件,那么你也可以不加参数,但是你的配置文件必需命名为 candy.ini。另外,添加 /ini 参数时,注意:路径和 /ini 参数之前一定要有一个空格

2.2 配置文件[返回目录]

现在,已经搞定了使用Candy的第一大难题,现在来说说第二个—-Candy的配置文件,其实,这也很简单,沙牛做了一个未做任何配置的模板,可以点此下载,然后,再看看后面对每一项的说明。

下载了吗?OK,go on.

先说一下ini配置文件的结构:[] 代表一个区段,而每个区段中可以放置不同的配置,每个配置的格式为 参数名=属性值,而以分号(;)开头的语句则为注释。因此,在刚才的模板里,就存在两个区段:configuration 和 associations。其中,configuration 放置一些关于Candy软件本身的配置,而 associations 区段则记录着你对不同扩展名的不同配置。每个参数的用途如下。

configuration 区段:

参数名 作用
used_browser 定义常用的浏览器,详细含义:

假设你系统默认”IE”,你在candy里面设置的浏览器(即default_browse)是firefox,那么,当你当前用的浏览器是chorme的话,candy将把执行的结果反馈到哪个浏览器呢?这是个选择题。所以,用了一个used_browser,如果你在这里面定义过该浏览器,那么在该浏览器上发candy命令,则在该浏览器内执行。

例如:used_browser=chrome.exe,firefox.exe,maxthon.exe

default_browser 默认浏览器,用于打开Candy里配置的网址,注意:如果和操作系统的默认浏览器不一致,将会以该参数对应的为准。

例如:default_browser=c:\Program Files\Internet Explorer\IEXPLORE.EXE

config 配置文件出错时,用什么程序打开配置文件。

例如:config=”c:\Program Files\Notepad++\notepad++.exe”

TimeWaitCandy 执行操作时,需要一定时间,如果这个时间内,比如CPU忙时,没有提取到内容,则认为是空的。该时间以秒为单位。

例如:TimeWaitCandy=1

ShortText_Length 设置一个字符串长度,当被选择的字符串小于等于这个长度时,就会被作为短文本,否则为长文本。

例如:ShortText_Length=80

Show_error_msg 是否显示错误信息,1为显示,0为不显示。

例如:Show_error_msg=1

associations 区段(该区段是由用户自行设置扩展名打开方式的,但有一些特殊的类型需要说明):

参数名 作用
ShortText 指定对短文本所做的操作,沙牛设置的是用Google进行搜索,当然,你也可以自行设置。

例如:ShortText=http://www.google.com.hk/search?q=

LongText 指定对长文本进行操作。

例如:LongText=”c:\Program Files\Notepad++\notepad++.exe”

另外,可以将它放入剪贴板:LongText=<clipon>

<clipon>为内置的变量,更多的变量将在后面介绍。

WebUrl 指定网页链接的处理方法。

例如用浏览器打开它:WebUrl=”c:\Documents and Settings\Administrator\Local Settings\Application Data\Google\Chrome\Application\chrome.exe”

Folder 指定对文件夹的处理方法。
Driver 指定对磁盘的处理方法。
NoExt 指定对没有后缀的文件的处理方法。
Email 指定对电子邮件地址的处理方法,一般设置为给这个地址发邮件:

Email=mailto:

AnyText 对任意文本的操作。
AnyFile 对未被定义文件类型的操作。注:如果在后面设置了独立的文件格式,比如txt,那么对txt文件调用Candy时,将不再使用AnyFile的配置。即:AnyFile的设置只针对配置文件里没有设置独立插件的后缀名。

AnyFile=”c:\Program Files\Notepad++\notepad++.exe”

注意:对于应用程序的路径,如果路径里包含空格,则必须用引号(“”)括起来。

另外,除了上面这些软件预留的配置和特殊类型外,我们还可以自己定义对各种文件的处理方式。其格式为:后缀=应用程序(参数①)|(参数②)操作对象|启动目录|状态参数

看起来很复杂是吧?参数什么的下文再说,其实,如果是基本的应用,我们完全可以将格式改为这样:后缀=应用程序

比如,我希望选中一个文本文档时,用Notepad++打开,这时可以这样写:

……前面省略
[associations]
txt=”c:\Program Files\Notepad++\notepad++.exe”

另外,你还可以在一行配置中写入多个文件类型,类型之间用竖线(|)隔开。

……前面省略
[associations]
txt|ini|ahk=”c:\Program Files\Notepad++\notepad++.exe”

通过以上的设置,你将得到一个类似于该文件的Candy配置文件

OK,看到这里,你已经基本上学会Candy的使用了,对于一般的应用,绝对不成问题,不过,Candy的强大绝不仅仅是这些,下面,来学习一些Candy的高级功能吧。

2.3 菜单[返回目录]

通过使用Candy,你可以很轻松的使用不同的程序去打开不同类型的文件,而面临文章开头的第二个需要,怎么办呢?该是Candy的菜单功能出场的时候了。

由于工作的关系,沙牛需要经常处理HTML的文档,有时需要用DreamWeaver来编辑,有时又需要用到Notepad++,有时还需要用各种浏览器来预览,而Candy可以做到什么效果呢?先看一下沙牛对HTML文件使用Candy后的截图:

这样的菜单是怎样实现的呢?只需要如下几行代码:

……前面省略
[associations]
htm|html=<menu>browsers+{edit:编辑}
[menu_edit]
用DreamWeave编辑=“d:\Adobe\DreamWeaver\dreamweaver.exe”
用Notepad++编辑=”c:\Program Files\Notepad++\notepad++.exe”
[menu_browsers]
用FireFox浏览=“d:\Network\Firefox\firefox.exe”
用Chrome浏览=”c:\Documents and Settings\Administrator\Local Settings\Application Data\Google\Chrome\Application\chrome.exe”
用IE浏览=“c:\Program Files\Internet Explorer\IEXPLORE.EXE”

对代码的解释如下:

  1. 定义菜单需要用 [menu_menuName] ,其中,menuName为定义的菜单名。
  2. 对文件类型启用菜单需要用 <menu> 开头。
  3. 普通的菜单在后面跟上菜单名即可。
  4. 如果需要添加二级菜单,则需用大括号{}括起来,大括号里的格式为:菜单名:想要显示的字符串。
  5. 多个菜单间用加号(+)连接起来。

2.4 参数[返回目录]

上面已经说过,配置一个文件类型的处理方法,最标准的格式为:

后缀=应用程序(参数①)|(参数②)操作对象|启动目录|状态参数

这些参数都是什么意思呢?这得看后缀所对应的程序,这个程序有些什么参数,你就可以通过配置给它传递什么样的参数。而状态参数,则为固定的Max、Min和Hide三个,Max为最大化,Min为最小化,Hide为隐藏,这和快捷方式的运行方式一致。

此外,Candy还提供众多的参数,以供选用。可以书妖的Candy介绍中查询。

另外,有两个比较实用的参数,不得不说:

参数名 含义
<d> Candy所在的盘符
<p> Candy所在的目录

书妖对这两个参数的解释如下:

这两个参数用于“便携化”,比如你在U盘里面使用candy。当然,这两个参数在大部分情况下,是可以被忽略的。

txt=<d>\某文件夹\某软件 完全可以写成 txt=\某文件夹\某软件
txt=<p>\某软件           可以写成     txt=某软件

设计这两个参数,是为了某些特殊命令行场合。

3. 结语[返回目录]

作为一款操作辅助性的软件,Candy可以说是解决了打开文件时的诸多问题,相信不只是沙牛,必定要很多朋友也是如此。蒙佳软推荐,沙牛也是一位TC粉丝,长时间以来,一个问题困扰着我,抛开TC的Lister插件,如果是用F4键(沙牛设置的是Notepad++),则所有文件,哪怕是图片和音乐,全都用Notepad++打开,非常麻烦,之前和佳软沟通时他提到了F4Menu,也是一款经典的软件,而沙牛认为,Candy和F4Menu有着本质的不同,甚至比后者更为方便。Candy,完美的解决了沙牛的问题,欣喜不已。最后,祝大家Candy愉快,如果在使用过程中有什么问题或者建议,欢迎留言。也谢谢Xbeta,给了沙牛一个推广Candy的平台。

4. 本文历史[返回目录]

  1. 本文创建于 2010-10-22 日。
  2. 2010-10-24 日第一次修改,并加上源代码下载地址。

>

《以简驭繁 弹指神通–超绝神器Candy小窥》有76个想法

      1. 便于大家配置Candy,提供一个提取任意文件夹下exe程序完整路径的方法:
        建立一个List.bat批处理放入系统右键菜单发送到中(即sendto文件夹下,vista以上系统运行中敲入shell:sendto启动这个文件夹)
        @echo off
        dir %1*.exe /B /S /A:-D >>C:lujing.txt
        使用时在安装有许多程序或者绿软的文件夹右键单击→点选发送到→点击List.bat即可。
        打开C盘下的lujing.txt拷贝想要的配置到Candy的几个ini文件里头。

        1. “提供一个提取任意文件夹下exe程序完整路径的方法”
          没必要写批处理那么麻烦,其实在Candy对任意一个文件操作的时候,点击弹出菜单的第一条即可将路径复制下来了!(书兄说的,可行,呵呵~~~)

  1. 没有太多时间细看
    大致了解了一下
    感觉功能缺乏足够的吸引力
    这可能是软件定位的问题

    比如它仅支持后缀名匹配
    而实际上用户还可能有其他的需求
    比如按文件名前缀或者按文件头匹配

    到是文中提到的鼠标手势软件StrokeIt对我还有些吸引力

    1. 恩,是的,因此文中才说Candy并不适用于所有人,Candy的用户大都是需要用多个软件来打开同一类型的。另外,你的意见,我会反映给作者。

    1. 恩对,感觉是复杂,但使用过后,一点也不复杂,一般人所用到的,也就几行配置文件而已,而且都很简单,这位朋友可以折腾一下。

    2. 个人认为,有些工具,上手起来可能需要一点的时间,但是配置完毕之后却节省很多时间和精力,就看个人有无需要了!

      1. 5. 内置的文件关联系统

          所谓文件关联,实际是文件类型与应用程序的对应关系。TC作者批评windows操作系统在这方面做得既差且乱,因此,推出了TC内置的文件关联体系。可以很方便实现一种文件类型对应多款软件,尤其是文本文件、图像、多媒体,经常需要多款软件打开。
          TC的文件关联,除了易于定义和使用之外,还会强烈得益于TC“文件类型”的灵活性。比如,把bmp、gif、png等多种文件定义为pic后,就可以对pic统一指定不同程序,不再需要一一定义。flash演示如下:
        from 「http://xbeta.info/total-commander-75.htm#h5」

  2. 其实我最想知道的是和F4menu比较起来有什么特别的地方……用ini来设置文件固然是一个很好的地方,但是不知道支不支持通过按键来选择菜单项(比如vim想用i来选择的话写成v&im这样子)

    1. F4Menu感觉选择稍显复杂,Candy目前还不支持用&来指定按键,不过这是个很好的意见,符合程序员的使用习惯,已反馈给书妖,修改前,你可以这样做:比如 “用Notepad++编辑” 可以改为 “N 用Notepad++编辑”,这样按N就可以启动。

    2. 如果说F4Menu插件是局限于TC管理器下的“一转多”中间接线板(借用一下善用佳软原话),那么Candy就是全局意义上“一转多”的中间接线板+直接定向转出的“多对多”万能转换器(或是微波系统里的定向耦合器!!哈哈)。

    1. 相较于F4Menu比较单一的功能,Candy的新颖之处在于拈出了一个极具启迪意义的理念:对一个特定的目标(比如文件、文本片段、文件夹、窗体),快速启动相关的应用。化腐朽为神奇!Candy的各类命令行参数,比如拆解出来的”文件名”,“文件路径”,以及状态类参数,时间类参数,输入框类参数,复制参数等等类别,能灵活变通实现许多实用功能,不过这要看各自的需求了。
      一百人心中有一百个哈姆雷特,一百个人手里的Candy也有一百种用法。

    2. 看了你们的留言,我到官方那下载了F4Menu,
      嘿!竟然是“百度地址栏辅助搜索”插件,我说怎么双击一点没反应呢,两年来头一次由于失误中招。鸭梨很大很大。
      鄙视一下:http://www.shanny.com.cn/f4menu2/
      我到太平洋下载到了,看来官网亦不可靠。

  3. 30分钟前从开始的一头雾水到现在的.发现有点意思..不过如果有更多的教程及实例就好了..因为很多是不需要重复每个人去做得 虽然很多的人的习惯不同..但是如果可以提供各种新奇的实例或许可以让大家更快的上手

    1. 应该还会有第二篇,会有一些实例,以及Candy详细的参数说明。另外,由于软件安装的目录不尽相同,需要也不一样,因此写出来的配置文件也不尽相同。

  4. 提供一个提取任意文件夹下exe程序完整路径的bat方法(帮助自主设定Candy配置文件):
    建立一个List.bat批处理放入系统右键菜单发送到中(即sendto文件夹下,vista以上系统运行中敲入shell:sendto启动这个文件夹)
    @echo off
    dir %1*.exe /B /S /A:-D >>C:lujing.txt
    使用时在安装有许多程序或者绿软的文件夹右键单击→点选发送到→点击List.bat即可。
    打开C盘下的lujing.txt拷贝想要的配置到Candy的几个ini文件里头。

    1. 可以在C:Program Files文件上或者安装了许多绿色便携软件的文件夹上使用,立刻就能获取列表。
      dir %1*.exe /B /S /A:-D >>C:lujing.txt里头的>>表示在txt末尾处追加列表而不会覆盖上次运行产生的。

  5. vim,TC,irfanview都是善用佳软推荐的软件,都是每天会用到的软件,都是有大量快捷键的,这些快捷键加起来数量也是相当可观啊,反倒是影响了效率

    1. Candy并不只是通过快捷键执行,还可以通过鼠标手势等方式,另外,即时是快捷键,也不过才一个。实践证明,快捷键是很难记混的,这一点,玩魔兽争霸多个种族的同学应该很清楚,哈哈。

      1. 同意。我就有使用Vim、TC和irfanview,另外还有MS Office、Photoshop,没有发现搞混快捷键的情况。实际上快捷键用习惯后就是条件反射了,在用某个软件的时候实现什么功能就进行什么操作。问题的关键点在于,这里给出的都是不同的软件,用于达成不同的目的,目的才是和你快捷键挂钩的部分,而不是软件。目前软件在“共同目的”上的快捷键都是一致的,比如保存是ctrl+s,vim也已经通过配置使其支持这个快捷键,一般情况下不会出现快捷键混乱。

  6. 说句实话,太复杂了。其实只要说怎么用就行了,头很大很大。
    F4Menu我已经用上了,就是把tc默认的记事本换成F4Menu就可以了,很简单,一句话就解释清楚了。
    但是这个candy就这么看怎么不懂。

    1. 试着稍微解释一下,F4Menu专门针对类型文件启动处理程序,而Candy的范围就广阔了许多,可以针对类型文件、文件夹(盘符和目录)、文本片断(长文本、短文本、网址、email、任意文本内容)等等诸如此类东西的快速启动相关应用(也就是说类型文件紧紧是其中的一种,Candy的精彩之处在于灵活的应用,而非局限于如F4Menu那样只能启用相关的处理程序。)

      1. 如果一开始先说:
        很多人习惯f4menu,那candy就首先弄成f4menu,两步搞定

        1.在candy.exe目录下建立candy.ini,在ini中编辑如下内容

        —–ini内容粉葛线——-
        [associations]
        mp3=”…..foobar.exe”
        ini|txt=”…..gvim.exe”
        —–ini内容结束粉葛线——-

        2.把tc默认的记事本换成candy.exe就可以了

        完毕!
        这样应该很多人能马上入戏。这篇文章比较完整,是篇好文章,只是有部分人
        一眼看到满屏的文字容易晕过去,比如在下。

        说点初次使用感受,启动速度比f4menu快,技巧比f4menu多,开放的源码注释详细。
        比f4menu弱的地方:f4menu同一文件格式设置多种程序启动的同时,还能设置不同的按键来确认是否调出程序菜单(如不调出菜单则默认用最前排的程序打开文件),而candy碰到多程序时好像一定要冒出菜单选择。另外一点网友ak47在后面也提到”在tc选中的多个文件,无法用candy一次处理”。比如我选中多个音频文件,用f4menu启动,可以将所有选择的文件放入foobar,这点candy就不行。

        1. Good!闯下的意见非常中肯,之前佳软也给我提到过这一点,我也准备修改。另外,对Candy和F4的比较也很贴切,我会把阁下的评论放在修改后的Candy文章里。感谢~

  7. 不错正是TC所欠缺的功能. 用TC+Candy的童鞋注意下,还有一个小技巧就是给菜单取名字的时候最前面加上字母或者数字,就可以用字母或者数字选择菜单的了.

    1. 我也补充一下,用candy童鞋在你想shortcut的时候,可以直接在想要设为快捷键的字母前头加个&。
      同时支持如下的形势,举个例子:
      拷贝 f&astcopy=kinifilecopyfastcopyfastcopy.exe fsize=32 /auto_close /cmd=diff
      粉碎 f&astcopy=kinifilecopyfastcopyfastcopy.exe fsize=32 /auto_close /cmd=delete
      这样的,如果&a被定义了两次,则在这两个之间循环

    1. 如果建立的是桌面快捷图标启动方式,可以把几个Candy的快捷图标移动到开始菜单中。效果也是一样的,这样桌面也就不用留快捷图标了。

  8. 好东东.
    不过让我唯一关注的一点是, 它是用ahk写的, 值得学习.(另外提一下, TC的wiki中有不少用ahk写的扩展, 中文论坛中有整理好的集合下载:http://ahk.5d6d.com/thread-3375-1-1.html)

    虽然我目前也用TC(感谢佳软), 不过我的需求比较简单, 预览/编辑/关联程序我就够用了.

    (关于ahk, 补充一点, 目前主分支1.0.48.05中文帮助已经翻译完毕, 欢迎大家到中文论坛下载!)

    1. 目前还没办法,因为candy不是仅仅针对文件的操作
      多个文件,就是一个“文件列表”,对这个列表,candy会认为是一个文本内容。

  9. F4Menu 现在弹出菜单越来越慢了。感觉是不知从哪个新版之后,想换回去,可是找不到老版本了。最近想换软件了。

  10. 不知道作者有没有听说过f4menu,功能差不多,图形化的关联界面,添加程序很方便。
    这类软件如果能与系统“打开方式”里的程序列表双向同步就更好了,省去了添加关联程序的麻烦。

发表评论

电子邮件地址不会被公开。 必填项已用*标注