fix failure to get_active_username in non-EN windows

This commit is contained in:
rustdesk 2021-04-07 22:16:54 +08:00
parent 8873bce514
commit 0503a4d5b6
2 changed files with 10 additions and 9 deletions

View File

@ -634,19 +634,20 @@ fn get_error() -> String {
} }
pub fn get_active_username() -> String { pub fn get_active_username() -> String {
use std::os::windows::process::CommandExt;
let name = crate::username(); let name = crate::username();
if name != "SYSTEM" { if name != "SYSTEM" {
return name; return name;
} }
if let Ok(output) = std::process::Command::new("query").arg("user").output() { const CREATE_NO_WINDOW: u32 = 0x08000000;
let mut cmd = std::process::Command::new("query");
cmd.arg("user");
cmd.creation_flags(CREATE_NO_WINDOW);
if let Ok(output) = cmd.output() {
for line in String::from_utf8_lossy(&output.stdout).lines() { for line in String::from_utf8_lossy(&output.stdout).lines() {
if line.contains("Active") { if let Some(name) = line.split_whitespace().next() {
if let Some(name) = line.split_whitespace().next() { if name.starts_with(">") {
if name.starts_with(">") { return name.replace(">", "");
return name.replace(">", "");
} else {
return name.to_string();
}
} }
} }
} }

View File

@ -1582,7 +1582,7 @@ impl Interface for Handler {
pi_sciter.set_item("sas_enabled", pi.sas_enabled); pi_sciter.set_item("sas_enabled", pi.sas_enabled);
if self.is_file_transfer() { if self.is_file_transfer() {
if pi.username.is_empty() { if pi.username.is_empty() {
self.on_error("No active console user logged on, please connect and logon first."); self.on_error("No active user logged on, please connect and logon first.");
return; return;
} }
} else if !self.is_port_forward() { } else if !self.is_port_forward() {