2015-11-03 10 views
0

У меня возникла проблема, так как моя команда работает с различными версиями Adobe Illustrator или имеет несколько версий установленного программного обеспечения.Как проверить версию иллюстратора, на которой работает скрипт, и на основе этого работает сценарий ветвления?

Есть ли способ проверить версию приложения adobe, которое запускает скрипт? Особо зная, если это 32 или 64 бит?

Мне нужно правильно определить #target и BridgeTalk.target, чтобы скрипт работал в текущем открывшемся приложении. (Скрипт запускается непосредственно из файла сценария)

Я не могу найти твердую документацию по этой теме. У кого-нибудь была аналогичная проблема и найдена, а также решения или обходные пути? (Обновление всего программного обеспечения самана к единой версии не может быть речи, к сожалению)

ответ

2

вы можете найти версию приложения по телефону app.version

$.writeln(app.version) 

Но, кажется, нет никакого способа узнать, если это 32 или 64 бит

Возможно, вспомогательный объект Extendscript может предоставить вам дополнительную информацию. например

$.writeln($.os) 
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; 
} 
+0

Ну. Если он работает. :) – fabianmoronzirfas

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 Files или Program Files (x86). В этом случае вам придется использовать другие способы.