如何检查运行脚本的illustrator版本,以及基于该分支脚本的分支脚本?

时间:2015-11-03 09:42:43

标签: javascript adobe-illustrator extendscript

由于我的团队在不同版本的Adobe Illustrator上工作,或者安装了多个版本的软件,因此我遇到了很多问题。

有没有办法检查运行脚本的adobe app的版本? 特别是知道它是32位还是64位?

我需要正确定义#target和BridgeTalk.target,以便脚本在当前打开的应用程序中运行。 (脚本直接从脚本文件运行)

我似乎无法找到有关该主题的任何可靠文档。 有没有人有类似的问题,发现和解决方案或解决方法? (遗憾的是,将所有adobe软件更新为单个版本是不可能的)

3 个答案:

答案 0 :(得分:2)

您可以致电app.version

找到应用版本
$.writeln(app.version)  

但似乎无法确定它是32位还是64位

也许Extendscript帮助对象可以为您提供更多信息。例如

$.writeln($.os)

答案 1 :(得分:1)

这将检查应用程序的版本是什么,以及它是32位还是64位(不是操作系统):

$.writeln(app.version); //writes the app version
$.writeln((app.path.fsName.indexOf('Program Files (x86)') > -1)?'32 bit':'64 bit'); //writes the bit version of the app

此代码适用于您要检查的任何应用。

如果应用程序安装在其他位置Program FilesProgram Files (x86),我可以想到的唯一问题。在这种情况下,您将不得不使用其他方式。

答案 2 :(得分:0)

@fabiantheblind

使用你的提示我设计了一段似乎正在诀窍的代码(但它缺乏优雅:P)

switch(app.version.split(".")[0])
{
  case "16":
    //32 bit versions run in emulated enviorment, so the $.os returns string
    //containing 'emulation' substring. Not entierly sure it is reliable :P 
    var string = String($.os);
    if(string.indexOf("emulation") > -1) 
    {   
        $.writeln("32 bit code here");
    }
    else
    {
        $.writeln("64 bit code here");
    }
    break;

    default:
        break;
}