在Extendscript中获取当前用户名或计算机名

时间:2013-05-17 14:46:47

标签: javascript printing username extendscript computer-name

我终于在我的InDesign CS6脚本中取得了一些进展。现在,为了让它知道应该打印文档的打印机,我需要查询运行脚本的计算机。除此之外,也许是当前登录用户的名字,这实际上是一回事。顺便说一下,这是一个Mac OS X环境。任何人都可以帮助或至少指出我正确的方向吗?

1 个答案:

答案 0 :(得分:3)

http://jongware.mit.edu/idcs6js/pc_$.html所示,$.getenv()方法可用于获取任何环境变量。在Windows上,您可以使用$.getenv("COMPUTERNAME"),在Mac $.getenv("HOSTNAME")上可以使用。

如果这不起作用,请告诉我。我没有Mac可以测试,但可能还有其他选择。

编辑1:您使用的是InDesign Server吗?如果是这样,app.serverHostNameapp.serverSettings.hostName将起作用。

编辑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);

想法是将shell脚本写入文件然后执行它。 shell脚本获取主机名并将其写入文件。然后我们打开文件并读取主机名。