电子:如何最小化渲染过程中的窗口

时间:2016-06-08 07:48:16

标签: javascript jquery node.js electron

方案

我有一个窗口,它有一个add task button打开一个窗口。每次用户点击它,它都会打开一个窗口。我在add task window上有一个按钮,可以最小化它。如何实现这个最小化按钮?

代码

我可以使用以下代码close maximize窗口:

var winclose = function () {
    window.close();
}

var winmaximize = function () {
    window.moveTo(0, 0);
    window.resizeTo(screen.width, screen.height);
}

但是,我无法找到任何可以最小化渲染过程窗口的函数。

请帮助,非常感谢;

注意:

浏览器不提供开发人员最小化它们的功能。但在这里 是一个不同的场景。我在这里使用的是Electronjs提供的铬。因此,在我们开发桌面应用程序时必须有一种方法

虚拟下载链接:download from OneDrive

5 个答案:

答案 0 :(得分:17)

您可以在相应的BrowserWindow实例上致电minimize()。问题是如何最好地访问此实例,而这又取决于您打开窗口的方式以及最小化按钮的位置。从您的示例中,我认为最小化按钮实际上位于您要关闭的窗口中,在这种情况下,您可以最小化聚焦窗口,因为当用户单击其中的按钮时,窗口当前应该具有焦点:

const { remote } = require('electron')
remote.BrowserWindow.getFocusedWindow().minimize();

或者,如果您想要从其他窗口最小化任务窗口,则可以使用BrowserWindow.fromId()来访问相关窗口。

答案 1 :(得分:6)

旧线程,但应该注意的是,远程模块被视为安全问题,不鼓励使用(参见here)。 它也在电子 12 中按原样被弃用(参见 here)。

相反,您可以通过 IPC 发送命令来调用最小化。

来自渲染器:

ipcRenderer.send('minimize')

主要内容:

ipcMain.on('minimize', () => {
  win.minimize()
  // or depending you could do: win.hide()
})

您也可以只进行切换(在主界面中):

ipcMain.on('minimize', () => {
  win.isMinimized() ? win.restore() : win.minimize()
  // or alternatively: win.isVisible() ? win.hide() : win.show()
})

对于动态制作的窗口(如其他答案中所述,并且似乎是用例),您可以使用(代替“win”):

BrowserWindow.getFocusedWindow()

如果您有多个窗口(这就是重点),这会产生切换问题,但您可以使用 BrowserWindow.getAllWindows() 并迭代,如果您想从当前渲染器进程外部恢复特定窗口(例如ID)。不知道您为什么要这样做,但为了完整起见,我将其包括在内。

答案 2 :(得分:4)

如果您偶然发现此线程并使用电子vue,您可以直接在渲染器内使用this.$electron.remote.BrowserWindow.getFocusedWindow().minimize();

答案 3 :(得分:1)

这对我有用:

const { remote } = require('electron')
remote.getCurrentWindow().minimize();

答案 4 :(得分:0)

最小化渲染器的屏幕非常简单。使用远程对象,我们可以最小化渲染器的屏幕。假设您有一个按钮,当单击它时会触发屏幕最小化。波纹管就是这样做的功能。

const handleMinimise =()=>{
    remote.BrowserWindow.getFocusedWindow().minimize();
}

但是首先,您必须遵循以下要求远离电子

const electron = require("electron")
const remote = electron.remote

或如下

const { remote } = require("electron")