我正在使用Electron和Node.js开发一个应用程序,应该在需要时将便携式计算机(运行Windows 10)设置为节能模式,这是否有可能使用Node.js和electronic技术做到这一点?谢谢
最佳答案
您可以使用 SetSuspendState
库调用WinAPI函数 node-ffi
。
首先,安装库:
npm install ffi --save
然后,您可以使用以下代码:
var ffi = require('ffi');
var powrprof = ffi.Library('powrprof.dll', {
SetSuspendState: ['int', ['int', 'int', 'int']]
});
function invokeStandby() {
powrprof.SetSuspendState(0, 0, 0);
}
请注意,这会进行正常的待机,并会保留唤醒事件。如果要禁用唤醒事件,请使用
powrprof.SetSuspendState(0, 0, 1)
(第三个参数1而不是0)。有关详细信息,请参见docs。UPDATE :请注意,如果您认为一个不错的快捷方式将使用
rundll32
,则您将获得奇怪的行为,具体取决于计算机设置以及天气和星期几(如-未定义行为),因为rundll32
不会只需按照您的想法运行任意DLL函数。参见this article和 rundll32
docs。调用rundll32 powrprof.dll,SetSuspendState 0,0,0
可能会使您的计算机进入休眠状态,但是它可能会在另一台计算机上执行其他操作,例如休眠而不是调用待机模式(理论上甚至崩溃)。因此,不要这样做! 关于node.js - 使用Node.js将窗口设置为节能模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37031935/