1

在我的插件中,我通过这样做来启动 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,我现在知道没有跨操作系统方法。你能告诉我操作系统的具体方法吗?

4

2 回答 2

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

苹果电脑

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

于 2014-08-18T22:04:28.977 回答
1

不,没有跨平台的方式来创建快捷方式。实际上,正如您已经引用的 Wikipedia 页面所告诉您的那样,甚至没有用于快捷方式的跨浏览器格式。相反,每个平台都使用自己的链接类型:

这些东西中的每一个都有不同的行为。NTFS/*nix 硬链接甚至不是文件,而只是同一文件的不同名称。

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

于 2014-06-24T03:14:03.467 回答