私はElectronとNode.jsを使用してアプリケーションを開発しており、必要に応じてラップトップ(実行中のウィンドウ10)を省エネモードに設定する予定です。 Node.jsと電子の技術を使って?ありがとうNode.jsを使用してウィンドウを省エネモードに設定する
0
A
答えて
4
ライブラリを使用してWinAPI関数SetSuspendState
を呼び出すことができます。
まず、ライブラリをインストール:これは通常の待機を行い、葉が上のイベントを覚ますこと
var ffi = require('ffi');
var powrprof = ffi.Library('powrprof.dll', {
SetSuspendState: ['int', ['int', 'int', 'int']]
});
function invokeStandby() {
powrprof.SetSuspendState(0, 0, 0);
}
注:その後
npm install ffi --save
を、あなたはこのコードを使用することができます。ウェイクイベントを無効にする場合は、powrprof.SetSuspendState(0, 0, 1)
(0ではなく3番目のパラメータ1)を使用します。詳細については、docsを参照してください。
UPDATE:あなたは素敵なショートカットがrundll32
を使用することだろうと思うなら、あなたは(のように、おそらくコンピュータの設定や天候や曜日に応じて、奇妙な動作を取得することに注意してください - 未定義の動作)、なぜならrundll32
はあなたが思うように任意のDLL関数を実行するだけではないからです。 this articleおよびrundll32
docsを参照してください。 rundll32 powrprof.dll,SetSuspendState 0,0,0
を呼び出すと、コンピュータがスリープ状態になることがありますが、スタンバイモードを起動する代わりに、休止状態などの別のコンピュータで何かが起きる可能性があります(または理論的にはクラッシュ)。だから、これをしないでください!
0
私は、追加のライブラリを必要としないアイデアを思いついた。私たちが直接必要なパラメータを持つ関数SetSuspendState
を実行することができるように
var exec = require('child_process').exec;
exec('rundll32.exe powrprof.dll,SetSuspendState 0,0,0');
この関数は、単にシェル呼び出します。rundll32.exeを生成します。
希望します。
関連する問題
- 1. 親ウィンドウのselectboxにポップアップを使用して設定する
- 2. .htaccessを使用してランプ環境でNode.jsを設定する
- 3. Node.jsを使用してAlexa AppIdを設定する
- 4. AppleScriptを使用してウィンドウの位置を設定する
- 5. node.jsのウィンドウ1252を使用して文字列をエンコードする
- 6. applescriptを使用してアプリケーションの特定のウィンドウにフォーカスを設定します
- 7. ドメインとSSLを使用してAWS上にNode.jsアプリケーションを設定する方法
- 8. AppleScriptを使用して環境設定ウィンドウのプラス(+)ボタンをクリック
- 9. Web Extensionを使用してFirefoxウィンドウにフォーカスを設定する方法
- 10. OSXでC++を使用してopencv highguiを使用してアクティブなウィンドウをopencvイメージに設定する方法
- 11. Node.jsを使ってMongoDBにコレクションの配列を設定する
- 12. node.jsを使用してhtml要素の値を設定する方法は?
- 13. Node.jsを使用してファイルダウンロードディレクトリを設定する方法Selenium Chrome Driver
- 14. node.jsのnode-soapを使用してヘッダーを設定する方法
- 15. CassandraのNode.jsドライバを使用してsslOptionsを設定する方法は?
- 16. GmailのNode.js APIを使用して受信者を設定する方法
- 17. Typescriptを使用してAngular 2フロントエンドでNode.js jsサーバーを設定する
- 18. Javascript node.js、別のページで使用するCookieを設定する
- 19. SDL C++を使用してwin32ウィンドウでGUIボタンを設定する方法は?
- 20. Node.jsを使用するユーザー設定可能なTCPストリーム
- 21. Node.jsにクッキー値を設定します
- 22. appium doctorを使用してウィンドウの設定を確認できますか?
- 23. Powershellコマンドを使用してIISログ設定を設定する
- 24. IISでPowerShellを使用してアプリケーション設定を設定する
- 25. ペーパークリップを使用してdocxのコンテンツ設定を設定する
- 26. 設定を使用してウィジェットのプロパティを設定する
- 27. Microsoft.Web.Administrationを使用してASP設定を設定する
- 28. Visual Studioコードを使用してNode.JSで型を定義する
- 29. node.js/Expressを使用してリダイレクトで設定されていないヘッダー
- 30. ウィンドウをフォーカスに設定/フォアグラウンドにする
これは間違いです。 'rundll32'は任意のDLL関数を呼び出すことができません!実際には、 '0,0,0'はあなたが期待するものではありません。代わりに予期しないガベージを関数に渡します。なぜなら、' rundll32'の呼び出し規約は非常に特殊で、4つのパラメータを送信するからです。 '(HWND hwnd、HINSTANCE hinst、LPSTR pszCmdLine、int nCmdShow) '、' pszCmdLine'はコマンドラインへの文字列ポインタです。そのため、実際には正しく動作しない可能性があります(ハイバネーションがオンの場合)PCを休止状態にする可能性が高い 'SetSuspendState(0xABCDE、0x10000000、" 0、0、0 "、0);' – CherryDT
詳細については、https://blogs.msdn.microsoft.com/oldnewthing/20040115-00/?p=41043(「Rundll32.exeのエントリポイント」までスクロールしてください)、またはレイモンドさんが[this]に追加した回答https://blogs.msdn.microsoft.com/oldnewthing/20070607-00/?p=26523#comment-512403)comment。 – CherryDT
Microsoftの 'rundll32'のドキュメントも参照してください:https://support.microsoft.com/en-us/kb/164787 – CherryDT