#javascript #node.js #electron
#javascript #node.js #electron
Вопрос:
У меня проблемы с получением имени и фамилии с помощью electron и node 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
Есть ли какой-либо способ получить имя и фамилию? или имя профиля с помощью electron или node js?
Пример: Mauro HUC
Примечание: Это приложение предназначено только для Windows.
Спасибо!
Ответ №1:
Модуль «полное имя» в некоторых случаях не возвращает имя, поскольку его невозможно найти. Это четко указано в репозитории GitHub для модуля.
Ответ №2:
Я нашел способ сделать это,
- Я использую пакет username для получения зарегистрированного пользователя.
async getUsername() {
return await username();
}
-
Затем в node js и electron вы можете использовать дочерние процессы, документы child_process.
-
Когда вы выполняете команду
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);
});
};
Таким образом, вы можете получить полное имя пользователя.