1

所以我开始学习电子,我做了一个很酷的应用程序。我想添加更多东西,但我有点卡住了。我尝试使用manufacturer();in添加 cpu 名称systeminformation。我不知道我做错了什么。上次我会提醒你,我是一个完整的初学者,所以希望我有点愚蠢。

这就是我想要制作的 div 的样子

            <div class="cpu_name">
                CPU name: <span id="cpu-name">-</span>
            </div>
            <div class="cpu_cores">
                CPU cores: <span id="cpu-cores">-</span>
            </div>
            <div class="cpu_temperature">
                CPU temperature: <span id="cpu-temperature">-</span>
            </div>
        </div>

另外,我没有忘记使用脚本

<script src="./renderer.js" defer type="module"></script>
<script src="./js/window.js" defer type="module"></script>

我所做的下一件事是将它添加到renderer.js 我创建的链接到#cpu-name

const CPU_NAME = document.getElementById("cpu-name");

然后我创建了getCpuName()函数

async function getCpuName(){
    const name = await app.cpuName();
    const cpu_name = name.manufacturer;

    updateCpuName(cpu_name);
}

因为我调用了一个updateCpuName()方法,所以我创建了一个

function updateCpuName(cpu__name){
    CPU_NAME.innerText = cpu__name;
    console.log(cpu__name);
}

接下来我所做的就是将它添加到preload.js. 我已经按教程完成了 preload.js,因为我还没有真正理解那里的所有内容......这是我的整个preload.js脚本

const os = require("os");
const { ipcRenderer, contextBridge } = require("electron");

const API = {

    window:{
        close: () => ipcRenderer.send("app/close"),
        minimize: () => ipcRenderer.send("app/minimize"),
    },

    cpuUsage: (data) => ipcRenderer.invoke("cpu/get", data),
    cpuName: (data)  => ipcRenderer.invoke("cpu/name", data),
}

contextBridge.exposeInMainWorld("app", API);

但这cpuName: (data) => ipcRenderer.invoke("cpu/name", data),是这里唯一重要的事情。我做的最后一件事是将它添加到index.js. 所以我基本上constsysteminformation

const {currentLoad, manufacturer,  cpu } = require("systeminformation");

然后做了一个ipcMain.handle();

ipcMain.handle("cpu/name", async (_, data) => {

    const name = await manufacturer();
    return name;


});

我确定我做错了什么,但我无法弄清楚是什么。这只是一个有趣的项目,我正在努力让它变得更好。感谢您甚至只是阅读此内容^-^

4

1 回答 1

0

有一个名为 systeminformation ( https://www.npmjs.com/package/systeminformation ) 的 npm 模块可以帮助您解决这个问题。我从来没有使用电子或这个模块访问过 CPU,但是这个模块看起来很容易使用并且有很好的文档记录。

另请查看模块自述文件的“已知问题”部分。检查 CPU 温度需要一些额外的依赖项,所以你可能也想看看!

于 2021-12-06T04:24:31.627 回答