Cómo obtener información del sistema operativo y del hardware con Electron framework

Cómo obtener información del sistema operativo y del hardware con Electron framework

Gracias a Electron Framework puedes usar HTML, CSS y Javascript con Chromium y Node.js para crear tu propia aplicación de escritorio. Como cualquier aplicación nativa, quizás necesites acceder a información básica acerca del sistema operativo y del hardware si quieres mostrar esta información a tu usuario.

En este artículo, aprenderás a cómo acceder a información básica acerca del hardware y del sistema operativo en Electron.

Sistema operativo

Para obtener información acerca del sistema operativo vamos a usar el módulo os que puede ser accedido de la siguiente manera (este módulo está incluido en Node):

var operativeSystemModule = require("os");

// Ejecuta cualquier método del OS aquí

Información acerca de dispositivos de red

Para obtener información acerca de los dispositivos de red, usa el método os.networkInterfaces:

var os = require("os");

console.log(os.networkInterfaces());

Deberías obtener información similar a :

Electron network information

Información de la CPU

Obtiene información acerca del nombre del procesador, velocidad etc usando el método os.cpus:

var os = require("os");

os.cpus();

/*
Este método retornara un array con objetos
los objetos dentro del array tienen la siguiente estructura
*/

{
   "model":"Intel(R) Atom(TM) CPU  Z3735F @ 1.33GHz",
   "speed":1333,
   "times":{
      "user":842156,
      "nice":0,
      "sys":576953,
      "idle":3697421,
      "irq":32656
   }
}

Obtener directorio de archivos temporales del sistema

Para crear archivos temporales, necesitarás crearlo en la carpeta de archivos temporales del sistema para asegurarse de que estos serán borrados automaticamente luego de cierto tiempo, para ello usa el método os.tmpDir para obtener el directorio canonico de archivos temporales del sistema operativo:

var os = require("os");

os.tmpDir(); // Este cadena de texto cambia de acuerdo al sistema operativo que uses 

Arquitectura del sistema

Obten la arquitectura del sistema usando el método os.arch:

var os = require("os");

os.arch(); 'x64', 'arm' and 'ia32'

Obtener capacidad de memoria RAM

Puedes obtener la cantidad de memoria total en bytes del sistema operativo usando os.totalmem:

var os = require("os");

var bytesAvailable = os.totalmem(); // Retorna un numero con la capacidad de la memoria(en bytes)
// 1 mb = 1048576 bytes
console.log("Total memoria disponible en MB :" + (bytesAvailable/1048576) );

Para obtener el numero de bytes disponibles en la memoria usa el método os.freemem:

var os = require("os");

var mbTotal = ((os.totalmem())/1048576);
var mbFree = ((os.freemem())/1048576);

console.log("Hay "+mbFree+"mb libres en la memoria de un total de "+mbTotal+"mb");

Obtener nombre del sistema operativo

Puedes obtener el nombre del sistema operativo usando el método os.type y puedes obtener la plataforma usando os.platform:

var os = require("os");

os.type(); // Linux, Darwin or Window_NT
os.platform(); // 'darwin', 'freebsd', 'linux', 'sunos' or 'win32'

El módulo "os" provee un par de utilidades básicas para obtener información acerca del sistema, incluso hay más métodos que te pueden resultar util, para ello visita la documentación del módulo os aquí.

Discos duros y almacenamiento externo

Para obtener información acerca de de los discos duros instalados y externos de tu sistema, dependeras de una libreria de terceros. Estamos hablando de el módulo de drivelist, este módulo lista todos los medios de almacenamiento de tu computadora, en la mayoria de sistemas operativos.

Debes saber además que este módulo no requiere privilegios de administrador para obtener la información de los discos duros en el sistema operativos. Este módulo funciona en las siguientes plataformas:

  • Windows.
  • Distribuciones GNU/Linux  que incluyen util-linux y udev.
  • Mac OS X.

Para instalar este módulo en tu proyecto, ejecuta el siguiente comand en tu terminal:

npm install drivelist

Despues de la instalación podrás obtener el modulo drivelist con Javascript. El siguiente ejemplo listará todos los discos duros y medios de almacenamiento del sistema en la consola:

const drivelist = require('drivelist');

drivelist.list((error, discos) => {
    if (error) {
        throw error;
    }

    discos.forEach((disco) => {
        console.log(disco);
    });
});

/** Resultado en la consola
 
Mac OS X
[
  {
    device: '/dev/disk0',
    description: 'GUID_partition_scheme',
    size: 68719476736,
    mountpoints: [
      {
        path: '/'
      }
    ],
    raw: '/dev/rdisk0',
    protected: false,
    system: true
  }
]

GNU/Linux
[
  {
    device: '/dev/sda',
    description: 'WDC WD10JPVX-75J',
    size: 68719476736,
    mountpoints: [
      {
        path: '/'
      }
    ],
    raw: '/dev/sda',
    protected: false,
    system: true
  }
]
Windows
[
  {
    device: '\\\\.\\PHYSICALDRIVE0',
    description: 'WDC WD10JPVX-75JC3T0',
    size: 68719476736,
    mountpoints: [
      {
        path: 'C:'
      }
    ],
    raw: '\\\\.\\PHYSICALDRIVE0',
    protected: false,
    system: true
  }
]

**/

Que te diviertas !

Esto podría ser de tu interes

Conviertete en un programador más sociable