在我的插件中,我通过这样做启动了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我现在知道没有跨操作方法。能否请你告诉我具体的方法。
答案 0 :(得分:1)
不,没有跨平台的方式来创建快捷方式。事实上,甚至没有用于快捷方式的跨浏览器格式,因为您已经引用的the Wikipedia page告诉您。相反,每个平台都使用它自己的链接类型:
.lnk
files,有时hardlinks and junctions。man 3 link
,man symlink
,`man ln).desktop
files。这些事物中的每一个都表现不同。 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);
https://stackoverflow.com/a/25516219/1828637
在此处使用AppleScript:https://ask.mozilla.org/question/1126/shortcut-created-on-mac-with-osfile-but-cant-get-around-unidentified-developer-error/