gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 12:03:01 25 4
gpt4 key购买 nike

现在我像这样打开启动 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 秒后将其聚焦。 (旁白:在我的功能中,当用户单击“创建新配置文件”时,它会启动,但在创建/启动时,我希望允许他们在后台工作时命名配置文件,然后当用户通过按 Enter 或转义/模糊完成重命名时,它应该聚焦)

如果没有 js-ctypes,这种延迟焦点是否可能实现?

如果我求助于 js-ctypes,我想从 run 获取 pid 属性,然后将其移至后台,然后稍后再聚焦。但是出现了一个问题,我无法使用 winapi 将其移至后台,并且我不知道其他操作系统。 (mdn 说 pid 可能不适用于所有操作系统,它在 Mac 和 Linux 上可用吗?)

最佳答案

这根本不可能,在所有平台上都一致,即使您获得 pid 窗口句柄。

例如Windows:您不能简单地将其他进程的窗口设置为前台。其他进程must allow you to do so first即使如此,仍然存在限制。

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

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

关于javascript - nsIProcess - 在后台打开斜线延迟焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25324010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com