复制XREExeF并粘贴为文件快捷方式

时间:2014-06-23 21:51:09

标签: javascript file firefox-addon desktop-shortcut

在我的插件中,我通过这样做启动了Firefox配置文件:

var exe = FileUtils.getFile('XREExeF', []); //this gives path to executable
var process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess);
process.init(exe);

var args = ['-P', profName, '-no-remote']; //-new-instance
if (url) {
    args.push('about:home');
    args.push(url);
}
process.run(false, args, args.length);

因此,这会添加命令行参数并启动它。然而,这会导致一些问题。用户想要固定图标,它只是固定另一个firefox.exe。用户还尝试更改图标。

维基百科说所有操作系统支持快捷方式:http://en.wikipedia.org/wiki/File_shortcut

所以我想复制XREExeF并将其粘贴为快捷方式,然后向其中添加命令行参数。

编辑: 感谢@nmaier我现在知道没有跨操作方法。能否请你告诉我具体的方法。

2 个答案:

答案 0 :(得分:1)

不,没有跨平台的方式来创建快捷方式。事实上,甚至没有用于快捷方式的跨浏览器格式,因为您已经引用的the Wikipedia page告诉您。相反,每个平台都使用它自己的链接类型:

  • Windows:.lnk files,有时hardlinks and junctions
  • * nix :(符号)链接(man 3 linkman symlink,`man ln)
  • 某些* nix桌面环境:.desktop files
  • 其他* nix桌面环境:无论他们想要什么,如果有的话。

这些事物中的每一个都表现不同。 NTFS / * nix硬链接不是偶数文件,而只是同一文件的不同名称。

此外,您所描述的固定无论如何都是针对Windows的。其他桌面环境可能使用完全不同的固定,如果它们甚至提供相似的功能,或者至少它们的固定等效语言可能具有完全不同的语义。

答案 1 :(得分:1)

在此示例中,创建的快捷方式将被称为“Mozilla Firef ya”,并将打开名为“ya ya”的配置文件。

Cu.import('resource://gre/modules/FileUtils.jsm');
var exe = FileUtils.getFile('XREExeF', []);

var myShortcut = FileUtils.getFile('Desk', ['Mozilla Firef ya.lnk']);
var myShortcutWin = myShortcut.QueryInterface(Ci.nsILocalFileWin);

var myScIcon = new FileUtils.File('C:\\Users\\Noitidart\\Downloads\\amo-puzzle.ico'); //myScIcon must be converted to ico if it isnt an ico
myShortcutWin.setShortcut(exe, null, '-P "ya ya"', 'Launches Mozilla Firefox with "ya ya" Profile', myScIcon);

* nix(桌面)(FF无法在非桌面* nix上工作我认为

https://stackoverflow.com/a/25516219/1828637

的Mac

在此处使用AppleScript:https://ask.mozilla.org/question/1126/shortcut-created-on-mac-with-osfile-but-cant-get-around-unidentified-developer-error/