[userChrome script]firelaunchy – 从firefox快速启动应用程序 - 20100930更新

(7,887 views)
September 27, 2010

idea是落日长河的,参见这里

我这个脚本只是在firefox中提供一个类似于桌面启动程序launchy的输入条。

先总结一下落日长河的idea。

1. 这个方法依赖于采用win+r(呼出window中的“运行”窗口)启动应用程序,参考这里

  • 首先任意建一个文件夹,比如我 e:\quickstart
  • 然后把这个文件夹的路径添加到系统环境变量的path中,这样,这个文件夹就会被加入到命令的搜索路径中
  • 然后把你想要快速启动的程序的快捷方式(名字最好修改成1到3个字母,简短易记的,比如firefox我叫ff)放到quickstart目录里
  • 到这儿,就可以在“运行”窗口或者cmd下直接输入快捷方式来快速启动程序,比如敲ff->回车就可以启动firefox

这一步就是常说的win+r快速启动,如果想在firefox里直接启动这些程序,还需要做下面3步

2. 一个wscript脚本,用来模拟在命令行里输入命令并执行

On Error Resume Next
Dim SC, JS, WSH
Set SC = CreateObject("ScriptControl")
SC.Language = "JScript"
Set JS = sc.CodeObject
Set WSH = CreateObject("wscript.shell")

cmd = JS.decodeURI(wscript.arguments(0))
If Left(cmd,34)<>"exec://1234567890.central.firefox/" Then
      WScript.Echo cmd & vbCRLF & vbCRLF & "拒绝执行"
Else
    cmd = Ltrim(Mid(cmd,35))
    WSH.Run cmd
    If Err.Number<>0 Then
         WScript.Echo cmd & vbCRLF & vbCRLF & "执行失败"
    End If
End If

注意第9行蓝色部分,这个串是用来识别请求是从firefox来的。第4部分的脚本要用到。
exec是协议名,下面要讲,需要和注册表里注册的一样。
附件:exec

3. firefox还需要识别出用户输入的指令是要启动程序,并通过wscript脚本来执行。
通过下面这个注册表文件,把exec.vbs脚本注册为exec协议的处理函数,这样在firefox遇到exec://xxx这样url请求时,操作系统会通过exec.vbs来执行

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\exec]
@="URL: Exec Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\exec\shell]
[HKEY_CLASSES_ROOT\exec\shell\open]
[HKEY_CLASSES_ROOT\exec\shell\open\command]
@="wscript.exe \"e:\\Program Files\\Firefox4\\utils\\firefoxshell\\exec.vbs\" %1"

第9行(e:\\Program Files\\Firefox4\\utils\\firefoxshell\\exec.vbs)是上面说的wscript脚本的存放路径,可以修改成自己本地的真实路径。
注意exec.vbs后面的\别忘了,这个是用来转义”的。
附件:firefox_shell 第9行一定要修改成你自己的

4. 落日长河原文是通过书签用地址栏来获得用户输入,一个缺点是需要多输入一个书签的key,下面这个脚本提供一个独立的输入框,直接输入要启动的命令就可以启动程序。

脚本41行, 这个串要和第2部分vbs脚本里的一致。

const launchURLPrefix = "exec://1234567890.central.firefox/";

附件:firelaunchy-simple

现在提供下载的是一个简单的版本,只提供了一个用户接口。还有一个复杂点的版本,输入时带匹配提示的,比如你现在有v,vi,vis 这3个命令,输入v时会像地址栏的提示一样把这三个都提示出来。但是目前还有点问题。。。

——————————————————————————————————————————-
另一方面,相反的,当firefox还没有运行时,你可能非常想打开一些网页,这时候如果已经通过第1部分讲的内容将firefox的快捷方式加入到了quickstart目录里,可以直接用win+r命令呼出“运行”输入框,输入

firefox url1 url2 url3

就可以直接启动firefox并打开这些网页。


related post

(7,887 views)

15 Responses to [userChrome script]firelaunchy – 从firefox快速启动应用程序

  1. harnack says:

    这个的确很geek。但是定位到地址栏要按alt+d(或者xul脚本里的alt+r),貌似和直接用win+r的按键次数是一样的。

    • admin says:

      呵呵,是的。
      我想落日长河原来的初衷可能就只是想从浏览器里直接启动程序,不是为了节省按键次数图方便。。。

      记得好几年前,那会儿刚玩firefox,也曾经想找这样的一个办法。那时就希望一切常用操作和功能都可以在firefox里实现。装了一堆像ftp、记事本、闹钟这种插件,甚至还考虑用firefox来作文件管理器。。。

      不过,我始终认为浏览器未来发展的趋势就是操作系统化,浏览器会成为唯一的用户接口。而应用程序都是web化,基于云的,通过浏览器来操作。额,扯远了

      • harnack says:

        嗯,有道理。不用离开浏览器就能完成一切操作,的确是个有意思的想法,话说Emacs好像就是那个样子的。

  2. 小明 says:

    哇,这才知道mozest有这么个帖子。

  3. 小明 says:

    另外为什么不把把应用程序的快捷方式放到任务栏的快速启动栏,直接按 win+number 就ok了。

    • admin says:

      呵呵,其实这个没有好坏之分,只有喜好的区别。
      我个人喜欢把东西都隐藏起来,用命令行,而且我的快捷方式太多,启动栏都放不下。。。额
      ps: xp下好像win+number还不能用

      • 小明 says:

        喔,我是vista。没考虑其他的window。

        对了,楼主考虑考虑能不能来我这里写东西呀?

        不用定期的也可以,扩充扩充我的缓存…

        都是为了Firefox

      • admin says:

        我晕。目前我这个站都没什么时间更新。。。
        以后我要有什么好想法不适合放我这而适合放你那的就写你那。。。

        以后多交流^_^

  4. dragon says:

    喜欢这种新鲜事物,谢谢Xiao Shan分享。呵呵,你的网站终于有Favicon.

  5. harnack says:

    Favicon不错。

  6. tc says:

    楼主既然是用wp的,为什么不用代码插件呢?
    您这里好多的代码,应该是需要的.
    楼主博客很有技术含量,好多都不看不太懂.高人一个

  7. admin says:

    用了代码插件了呀,不过有时加载慢可能没显示出来。仍然谢了

    不敢当,我也是抱着学习交流的态度,有空多留言啊^_^

  8. huang says:

    那个输入条怎么调用出来啊

①若要贴代码,请将 "<" 改成 "&lt;",">" 改成 "&gt;".
②若要从他人留言中复制代码,注意检查引号可能是中文的,请手动修改成英文符号,避免不能工作