Skip to content

131/node-winapi

Repository files navigation

winapi

Misc natives MS Windows API wrappers for nodejs & nwjs

Version License Available platform Available platform Code style

API

require('winapi').getIdleTime()

Return the time the system has been idle (since last user interaction - e.g. mouse, keyboard & stuffs, see GetLastInputInfo) This is really usefull if you want to create a screensaver/like in nodejs / node-webkit.

var winapi = require('winapi');

console.log("System is idle since %s", winapi.getIdleTime() );

require('winapi').CreateJobGroup()

Create a job group with current process and all future child_process. Use this to kill zombies. Like Rick.

var winapi = require('winapi');

winapi.CreateJobGroup();

//you can now spawn subprocess and they'll be killed once you died, windows will clean everything up

  • (checkout my dispatcher project for inspiration)
  • Available for node 8, nw 26 and nw 14. (i did not re-compile other platform binaries, do it by yourself...)

require('winapi').GetLastInputInfo()

Use this native binding to get system last input time (see MSDN )

var winapi = require('winapi');

console.log("Last input time is %s", winapi.GetLastInputInfo() );

setTimeout(function(){
  //do not move, it wont change !
  console.log("Last input time is %s", winapi.GetLastInputInfo() );
}, 1000);

require('winapi').GetChildrenProcess([parentProcessId])

List all children process (of specified parent PID, default to current process)

require('winapi').GetParentProcess([childProcessId])

Get a process parent PID (of specified process PID, default to current process)

require('winapi').GetTickCount()

Retrieves the number of milliseconds that have elapsed since the system was started (uptime). (see MSDN )

require('winapi').GetDisplaysList(console.log)

List all connected screens

Credits

  • 131
  • Code signing, courtesy of IVS Group.

Keywords / shout box

screensaver, windows api, winuser.h, GetLastInputInfo, activity monitor, inactivity trigger, idle timer, system uptime, sytem bootime