nsIProcess -打开后台斜线延迟焦点



现在我像这样打开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);

这将在前台启动它。

我想把它放到背景中,然后在5秒后对焦。(aside:在我的功能,现在它启动时,用户点击"创建新配置文件",但当它创建/启动我想让他们命名配置文件,而它在后台工作,然后当用户完成重命名按enter或逃避/模糊,然后它应该聚焦)

如果没有js-ctypes,这种延迟焦点可能吗?

如果我诉诸js-ctypes,我想从run中获得pid属性,然后将其移动到背景中,然后稍后将其聚焦。但是出现了一个问题,我不能用winapi把它移到后台,我不知道其他os。(mdn说pid可能无法在所有操作系统上使用,它在mac和linux上有用吗?)

这在所有平台上都是不可能的,即使您获得了pid 窗口句柄。

。Windows:您不能简单地将其他进程的窗口设置为前台。另一个进程必须允许您首先这样做,即使这样,仍然有限制。

一般来说,这个想法是用户应该控制,其他应用程序不应该通过窃取焦点来打断。并不是真正发生在你的用例中,但操作系统/窗口管理器没有真正的方法知道。

我建议您不要立即启动配置文件,只有在用户完成编辑任何元数据(如配置文件名称)后才启动新的配置文件。

最新更新