首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Node.js将窗口设置为节能模式

使用Node.js将窗口设置为节能模式
EN

Stack Overflow用户
提问于 2016-05-04 15:21:50
回答 2查看 2K关注 0票数 0

我正在开发一个使用电子和Node.js的应用程序,它应该在需要时将笔记本电脑(运行windows 10)设置为节能模式,这能用Node.js和电子技术来实现吗?谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-04 15:32:54

您可以使用WinAPI库调用SetSuspendState函数。

首先,安装库:

代码语言:javascript
复制
npm install ffi --save

然后,您可以使用以下代码:

代码语言:javascript
复制
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)。有关细节,请参阅文档

UPDATE:注意,如果您认为使用rundll32是一个很好的快捷方式,那么根据计算机设置以及可能的天气和一周的时间(如未定义的行为),您将得到奇怪的行为,因为rundll32并不只是以您认为的方式运行任意的DLL函数。参见这篇文章文档。调用rundll32 powrprof.dll,SetSuspendState 0,0,0可能会使您的计算机进入睡眠状态,但它可能会在另一台计算机上执行其他操作,例如休眠,而不是调用备用模式(理论上甚至会崩溃)。所以,不要这么做!

票数 5
EN

Stack Overflow用户

发布于 2016-05-04 16:00:32

我想出了一个不需要额外库的想法。

代码语言:javascript
复制
var exec = require('child_process').exec;
exec('rundll32.exe powrprof.dll,SetSuspendState 0,0,0');

这个函数只是生成一个名为rundll32.exe的shell,这样我们就可以直接使用所需的参数执行函数SetSuspendState

希望这能有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37031935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档