| 
									
										
										
										
											2015-11-12 21:20:09 +08:00
										 |  |  | # powerMonitor
 | 
					
						
							| 
									
										
										
										
											2013-08-14 15:43:35 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-21 15:39:12 -07:00
										 |  |  | > Monitor power state changes.
 | 
					
						
							| 
									
										
										
										
											2016-04-21 15:35:29 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-23 11:20:56 -08:00
										 |  |  | Process: [Main](../glossary.md#main-process) | 
					
						
							| 
									
										
										
										
											2016-11-03 10:26:00 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-29 17:46:08 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | This module cannot be used until the `ready` event of the `app` | 
					
						
							| 
									
										
										
										
											2016-09-16 11:38:32 -07:00
										 |  |  | module is emitted. | 
					
						
							| 
									
										
										
										
											2013-08-14 15:43:35 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-28 21:37:07 -07:00
										 |  |  | For example: | 
					
						
							| 
									
										
										
										
											2013-08-14 15:43:35 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | ```javascript | 
					
						
							| 
									
										
										
										
											2019-04-29 17:46:08 -07:00
										 |  |  | const { app, powerMonitor } = require('electron') | 
					
						
							| 
									
										
										
										
											2016-07-25 18:39:25 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-03 16:43:22 -06:00
										 |  |  | app.whenReady().then(() => { | 
					
						
							| 
									
										
										
										
											2019-04-29 17:46:08 -07:00
										 |  |  |   powerMonitor.on('suspend', () => { | 
					
						
							| 
									
										
										
										
											2016-07-25 18:39:25 -07:00
										 |  |  |     console.log('The system is going to sleep') | 
					
						
							|  |  |  |   }) | 
					
						
							|  |  |  | }) | 
					
						
							| 
									
										
										
										
											2013-08-14 15:43:35 -07:00
										 |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-28 21:37:07 -07:00
										 |  |  | ## Events
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-16 11:38:32 -07:00
										 |  |  | The `powerMonitor` module emits the following events: | 
					
						
							| 
									
										
										
										
											2015-08-28 21:37:07 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | ### Event: 'suspend'
 | 
					
						
							| 
									
										
										
										
											2013-08-14 15:43:35 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | Emitted when the system is suspending. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-28 21:37:07 -07:00
										 |  |  | ### Event: 'resume'
 | 
					
						
							| 
									
										
										
										
											2013-08-14 15:43:35 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-29 16:37:51 +02:00
										 |  |  | Emitted when system is resuming. | 
					
						
							| 
									
										
										
										
											2015-04-14 21:03:58 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-30 10:55:50 +09:00
										 |  |  | ### Event: 'on-ac' _Windows_
 | 
					
						
							| 
									
										
										
										
											2015-04-14 21:03:58 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | Emitted when the system changes to AC power. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-30 10:55:50 +09:00
										 |  |  | ### Event: 'on-battery' _Windows_
 | 
					
						
							| 
									
										
										
										
											2015-04-14 21:03:58 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | Emitted when system changes to battery power. | 
					
						
							| 
									
										
										
										
											2017-12-21 08:01:34 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-05 16:13:35 +09:00
										 |  |  | ### Event: 'shutdown' _Linux_ _macOS_
 | 
					
						
							| 
									
										
										
										
											2017-12-21 08:01:34 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | Emitted when the system is about to reboot or shut down. If the event handler | 
					
						
							|  |  |  | invokes `e.preventDefault()`, Electron will attempt to delay system shutdown in | 
					
						
							|  |  |  | order for the app to exit cleanly. If `e.preventDefault()` is called, the app | 
					
						
							|  |  |  | should exit as soon as possible by calling something like `app.quit()`. | 
					
						
							| 
									
										
										
										
											2018-03-13 22:42:08 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-01 02:04:27 +10:00
										 |  |  | ### Event: 'lock-screen' _macOS_ _Windows_
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Emitted when the system is about to lock the screen. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ### Event: 'unlock-screen' _macOS_ _Windows_
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Emitted as soon as the systems screen is unlocked. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-13 22:42:08 -07:00
										 |  |  | ## Methods
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The `powerMonitor` module has the following methods: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-29 17:46:08 -07:00
										 |  |  | ### `powerMonitor.getSystemIdleState(idleThreshold)`
 | 
					
						
							| 
									
										
										
										
											2019-02-27 12:54:01 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | * `idleThreshold` Integer | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Returns `String` - The system's current state. Can be `active`, `idle`, `locked` or `unknown`. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Calculate the system idle state. `idleThreshold` is the amount of time (in seconds) | 
					
						
							|  |  |  | before considered idle.  `locked` is available on supported systems only. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-29 17:46:08 -07:00
										 |  |  | ### `powerMonitor.getSystemIdleTime()`
 | 
					
						
							| 
									
										
										
										
											2019-02-27 12:54:01 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | Returns `Integer` - Idle time in seconds | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Calculate system idle time in seconds. |