如前所言,需要让Python成为ActiveScript。

  已经装了Python的请直接跳过这一步。没有Pyhont的,还是先去www.activestate.com,找个合适版本的ActivePython拉下来,装上。个人推荐ActivePython2.6和3.2都装上,让2.6作为默认的版本(安装过程选项中,最后一项是设置默认的Python),3.2用于面向未来(众所周知它默认支持UTF-8,中国人最该支持,又题外话了),并建议装x86而不是x6×4版(又是题外话,支持x86版本的Python扩展模块更多)。有关Python安装问题,找谷歌。

  然后,也最重要的是,忘掉ActiveState默认安装的那个旧版的pywin32模块,自己动手丰衣足食,去这里下载一个最新版:http://sourceforge.net/projects/pywin32/files/pywin32/。我下的是:pywin32-216.win32-py2.6.exe(注意版本对应情况,下错了不能安装,白忙活)

  覆盖安装pywin32。

  我的python装在D盘,打开这里:D:\Python26\Lib\site-packages\win32comext\axscript\client

  见证奇迹的时刻到了:运行pyscript.py!(双击一下,或者在cmd中敲"python pyscript.py)。就是这一步,才让Python具有ActiveScript的身份!!原理上,就是pywin32做了个二传手,把python封装成一个支持ActiveScript模式的东东。

  呵呵,先别急,事情还没那么简单呢,还得先测试一下,WSH是否真正接受Python的注册了,我在这里吃过很多苦头。由于各台电脑情况不一样,问题也会多种多样,建议先测试好再进EmEditor。

  pyscript运行的结果之一,是让WSH在处理后缀为.pys的脚本文件时,自动调用Python引擎。我们需要一个test.pys,我的是这样:

import sys

print "hello",sys.version

  还是打开cmd,找到test.pys所在文件夹,敲入"cscript test.pys",执行。“wscript test.pys”情况类似,不熟悉WSH工作方式的,狂搜谷歌。

  在我的电脑上,test.pys执行结果为:

  Microsoft (R) Windows Script Host Version 5.7 版权所有(C) Microsoft Corporation 1996-2001。保留所有权利。

  hello 2.6.6 (r266:84292, Jan 7 2011, 13:16:36) [MSC v.1500 32 bit (Intel)]

  这里,我也遇到一个错误,我的test.pys是个带有BOM前缀的UTF-8格式的文档,死活出错。直到我想起来用Notepad++直接把它转换为ansi编码,才正确运行。

  至此,可以被EmEditor接受的PythonScript(有些半吊子的帮助文档会这么称呼已经ActiveScript化的Python)才算打造成功。

  在EmEditor中,编写一个test.py(注意,这里又可以直接用.py了),如下:

  #language = "Python"

  Window.document.write( 'Hello' );

  保存到EmEditor文件夹下的\PlugIns\@bin\test.py

  然后,菜单“宏”——“选择”——“全部文件”——"test.py",再“宏”——“运行test.py"

  哦也!!

  你成功了吗??

  (全文完)

  补充:

  下午啰嗦了这么多,其实是因为自己走了很多弯路,想讲仔细点,以供千差万别情况下借鉴一二。

  实际上,真正的问题还是如何让Python光荣加入ActiveScript行列,可叹pywin32这个东东的文档不够详尽,而ActivePython又集成的是旧版,贻误军情。在PythonScript成立之后,任何支持WSH脚本的应用,其实都可以调用Python了。晚上我才发现PsPad早就说“我能”了,应该还有一批这样的东东。

  作为一名业余爱好者,我希望减少学习负担,尽可能用Python解决更多问题,哪有那么多时间去跟C#JavaVBRuby以及PowerShell们唧唧歪歪啊。一叹!