使用 Node.js 将 windows 设置为节能模式
Setting windows to energy save mode using Node.js
我正在使用 Electron 和 Node.js 开发一个应用程序,并且应该在需要时将笔记本电脑 (运行 windows 10) 设置为节能模式,这是否可以使用 Node.js 和 electron 的技术来做到这一点?谢谢
可以调用WinAPI函数SetSuspendState
using the 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 and the rundll32
docs。调用 rundll32 powrprof.dll,SetSuspendState 0,0,0
可能会使您的计算机进入睡眠状态,但它可能会在另一台计算机上执行其他操作,例如休眠而不是调用待机模式(或者理论上什至会崩溃)。所以,不要这样做!
我想到了一个不需要额外库的想法。
var exec = require('child_process').exec;
exec('rundll32.exe powrprof.dll,SetSuspendState 0,0,0');
这个函数只是生成了一个 shell 调用 rundll32.exe,因此我们可以直接使用所需的参数执行函数 SetSuspendState
。
希望对您有所帮助
我正在使用 Electron 和 Node.js 开发一个应用程序,并且应该在需要时将笔记本电脑 (运行 windows 10) 设置为节能模式,这是否可以使用 Node.js 和 electron 的技术来做到这一点?谢谢
可以调用WinAPI函数SetSuspendState
using the 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 and the rundll32
docs。调用 rundll32 powrprof.dll,SetSuspendState 0,0,0
可能会使您的计算机进入睡眠状态,但它可能会在另一台计算机上执行其他操作,例如休眠而不是调用待机模式(或者理论上什至会崩溃)。所以,不要这样做!
我想到了一个不需要额外库的想法。
var exec = require('child_process').exec;
exec('rundll32.exe powrprof.dll,SetSuspendState 0,0,0');
这个函数只是生成了一个 shell 调用 rundll32.exe,因此我们可以直接使用所需的参数执行函数 SetSuspendState
。
希望对您有所帮助