Получить имя и фамилию в Windows с Electron - PullRequest
0 голосов
/ 12 апреля 2019

У меня проблемы с получением имени и фамилии с электроном и узлом js, у меня есть имя пользователя, но мне нужно имя и фамилия.

Пример изображения

Я пытался:


   const username = require('username');
   const os = require ('os');
   const computerName = os.hostname();
   const fullname = require('fullname');

   console.log(os.userInfo());


   // Console:
   //{ uid: -1,
   //  gid: -1,
   //  username: 'mauroh',
   //  homedir: 'C:\\Users\\mauroh',
   //  shell: null 
   //}

   console.log("computerName: ", computerName);
   console.log("username: " , username());

   // Console:
   // computerName: DEV
   // username: mauroh

   fullname().then(name => {
    console.log(name);
   });

   // Console:
   // mauroh

Есть ли способ получить имя и фамилию? или имя профиля с электроном или узлом js?

Пример: Mauro HUC

Примечание. Это приложение предназначено только для Windows.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 14 апреля 2019

Я нашел способ сделать это,

  1. Я использую пакет username для получения зарегистрированного пользователя.
async getUsername() {
  return await username();
}
  1. Тогда в узле js и электронном вы можете использовать дочерние процессы, child_process docs .

  2. Когда вы выполняете команду net user <username> или net user <username> / domain, вы получаете всю информацию о пользователе, среди всей информации есть полное имя, также имя может быть пустым.

const child = require('child_process');
let exec = child.exec;

// And make a function for do command

function execute(command, callback){
    exec(command, function(error, stdout, stderr){ 
      let result = null;

      if(!error){

        var splitted = stdout.split("\n");    
        var username = '';
        var fullname = '';

        for(var i=0; i < splitted.length; i++){
          if(splitted[i].search("User name") != -1){
            splitted[i] = splitted[i].replace('User name',' ');
            splitted[i] = splitted[i].trim();
            username = splitted[i];
          }else if(splitted[i].search("Full Name") != -1){
            splitted[i] = splitted[i].replace('Full Name',' ');
            splitted[i] = splitted[i].trim();
            fullname = splitted[i];
          }
        }

        let data = {
          username: (username) ? username.toLowerCase() : null,
          fullname: (fullname) ? fullname: null
        }

        result = data;
      } else{
        result = null;
      }
      callback(result); 
    });
  };

Таким образом, вы можете получить полное имя пользователя.

0 голосов
/ 12 апреля 2019

Модуль "полное имя" в некоторых случаях не возвращает имя, так как оно не может быть найдено. Это четко указано в репозитории GitHub для модуля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...