创建AppleScript作为应用程序包并设置其图标

时间:2014-08-18 21:19:54

标签: firefox-addon

以编程方式我正在尝试创建一个applescript文件并设置其图标。我用OS.File简化了内容。

我正在尝试按照本教程中的说明如何在mac上创建配置文件快捷方式: http://weblogs.mozillazine.org/asa/archives/2008/08/shortcut_to_lau.html

我遇到的问题是我无法将其设置为“应用程序包”,我无法弄清楚如何设置图标。

2 个答案:

答案 0 :(得分:1)

好的,现在我们正在做饭。

我浏览了你的链接,这就是我找到的。

我打开了脚本编辑器并将其作为我的脚本

do shell script "/Applications/Calculator.app/Contents/MacOS/Calculator"

所以这应该只是打开计算器,它确实!

获得此转到文件>保存并输入您想要的名称后,应该有一个名为文件格式的字段。选择应用程序并将其保存到要保存的位置。我把它放在我的桌面上。

所以知道你应该有一个文件,双击它会打开计算器。如果要更改此文件的图标,请右键单击并选择“获取信息”。然后,只需将想要图标的图像拖到“获取信息”窗口中的左上角图像。

应该这样做。

答案 1 :(得分:0)

好的我在这方面取得了进展,但是点击了script.app文件,它正在投掷"身份不明的作者"错误,我想弄明白。

我只需将已编译脚本的文件设置为.app而不是.scpt,即可将其应用于捆绑包。

无论如何这是迄今为止的工作:

Cu.import('resource://gre/modules/osfile.jsm');
Cu.import('resource://gre/modules/FileUtils.jsm');
var path_compile = OS.Path.join(OS.Constants.Path.desktopDir, 'script.app');
var XREExeF = FileUtils.getFile('XREExeF', []).path;

var osacompile = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsILocalFile);
osacompile.initWithPath('/usr/bin/osacompile');

console.log('Script will be compiled at path:', path_compile);

var proc = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess);
proc.init(osacompile);

var procFinOSA = {
  observe: function(aSubject, aTopic, aData) {
    console.log('incoming procFinOSA', 'aSubject:', aSubject, 'aTopic:', aTopic, 'aData', aData);
    console.log('incoming procFinOSA unevaled', 'aSubject:', uneval(aSubject), 'aTopic:', uneval(aTopic), 'aData', uneval(aData));
  }
};

var userAgent = Cc['@mozilla.org/network/protocol;1?name=http'].getService(Ci.nsIHttpProtocolHandler).userAgent;

if (/Mac OS X 10\.(?:4|5|6)(?!\d)/.test(userAgent)) {
  //Before lion, well just for 10.4, 10.5, 10.6, this is just what Zotero had
  console.log('Compiling for pre-Lion Mac OS X', 'userAgent:', userAgent);
  var args = ['-t', 'osas', '-c', 'ToyS', '-x', '-o', path_compile, '-e', 'do shell script "' + XREExeF + ' -P -no-remote &> /dev/null &"'];
  proc.runAsync(args, args.length, procFinOSA);
} else {
  //Lion and after (so >= 10.7)
  console.log('Compiling for Lion or later Mac OS X', 'userAgent:', userAgent);
  var args = ['-x', '-o', path_compile, '-e', 'do shell script "' + XREExeF + ' -P -no-remote &> /dev/null &"'];
  proc.runAsync(args, args.length, procFinOSA);
}

双击script.app时抛出的错误图形:

graphic of error thrown on double click of script.app