2013-05-17 2 views
0

Наконец-то я получил некоторый прогресс в моем скрипте для InDesign CS6. Теперь, чтобы узнать, какой принтер должен распечатать документ, мне нужно запросить, на каком компьютере работает скрипт. Запрет на то, что, возможно, имя текущего пользователя в системе, что на самом деле то же самое. Кстати, это среда Mac OS X. Может ли кто-нибудь помочь или хотя бы указать мне в правильном направлении?Получение текущего имени пользователя или имени компьютера в Extendscript

ответ

3

Как видно из http://jongware.mit.edu/idcs6js/pc_$.html, метод $.getenv() может использоваться для получения любой переменной окружения. В Windows вы можете использовать $.getenv("COMPUTERNAME"), а на Mac $.getenv("HOSTNAME") должен работать.

Дайте мне знать, если это не поможет. У меня нет Mac для тестирования, но есть, вероятно, другие варианты.

EDIT 1: Вы используете InDesign Server? Если да, то будут работать app.serverHostName и app.serverSettings.hostName.

EDIT 2: Вот еще один из возможных решений:

var outputFile = new File(Folder.desktop.fsName + "/GetHostName.sh"); 
outputFile.open("w"); 
try { 
    outputFile.write("scutil --get HostName > ~/Desktop/HostName.txt"); 
} 
finally { 
    outputFile.close(); 
} 
outputFile.execute(); 

var inputFile = new File(Folder.desktop.fsName + "/HostName.txt"); 
inputFile.open("r"); 
try { 
    var hostName = inputFile.read(); 
} 
finally { 
    inputFile.close(); 
} 

$.writeln("Host Name: " + hostName); 

Идея заключается в том, чтобы написать скрипт в файл, а затем выполнить его. Сценарий оболочки получает имя хоста и записывает его в файл. Затем мы открываем файл и читаем имя хоста.

+0

Я вижу, где вы собираетесь с этим, @ dln385, но я боюсь как '$ .getenv();' и '$ .getenv (" HOSTNAME ");' return 'null'. Я посмотрю, есть ли список переменных среды Mac OS X где-то в Интернете. И мы не используем серверный вкус, просто обычный «InDesign CS6». – Sturm

+0

Играя с этим методом '$ .getenv()', я обнаружил, что '$ .getenv (« USER »)' _does_ фактически возвращает зарегистрированного пользователя, который должен быть достаточно хорош для моих целей. Если, однако, вы обнаружите переменную окружения, которую Mac OS X 10.8 также использует для имени компьютера, @ dln385, сообщите мне. Благодаря! – Sturm

+0

@Sturm Добавлено второе изменение, чтобы ответить. – dln385

Смежные вопросы