Merge pull request #6565 from fufesou/fix/elevated_switch_display

fix, elevated mode, switch display
This commit is contained in:
RustDesk 2023-11-30 00:18:14 +08:00 committed by GitHub
commit 64ed25879c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
40 changed files with 59 additions and 13 deletions

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),

View File

@ -551,10 +551,11 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Filter by intersection", "按交集过滤"),
("Remove wallpaper during incoming sessions", "接受会话时移除桌面壁纸"),
("Test", "测试"),
("switch_display_elevated_connections_tip", "提权后,被控有多个连接,不能切换到非主显示器。若要控制多显示器,请安装后再试。"),
("switch_display_elevated_connections_tip", "用户提权后,被控有多个连接,不能切换到非主显示器。若要控制多显示器,请安装后再试。"),
("capture_display_elevated_connections_tip", "用户提权后,不能显示多个显示器。若要控制多显示器,请安装后再试。"),
("display_is_plugged_out_msg", "显示器被拔出,切换到第一个显示器。"),
("No displays", "没有显示器。"),
("elevated_switch_display_msg", "切换到主显示器,因为提权后,不支持多显示器画面。"),
("elevated_switch_display_msg", "切换到主显示器,因为用户提权后,不支持多显示器画面。"),
("Open in new window", "在新的窗口中打开"),
("Show displays as individual windows", "在单个窗口中打开显示器"),
("Use all my displays for the remote session", "将我的所有显示器用于远程会话"),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", "Odstranit tapetu během příchozích relací"),
("Test", "Test"),
("switch_display_elevated_connections_tip", "Přepnutí na jinou než primární obrazovku není podporováno ve zvýšeném režimu, pokud existuje více připojení. Pokud chcete ovládat více obrazovek, zkuste to po instalaci znovu."),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", "Obrazovka je odpojena, přepněte na první obrazovku."),
("No displays", "Žádné obrazovky"),
("elevated_switch_display_msg", "Přepnout na primární obrazovku, protože více obrazovek není podporováno ve zvýšeném režimu."),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", "Hintergrundbild während eingehender Sitzungen entfernen"),
("Test", "Test"),
("switch_display_elevated_connections_tip", "Das Umschalten auf einen sekundären Bildschirm wird mit erhöhten Rechten nicht unterstützt, wenn mehrere Verbindungen bestehen. Bitte versuchen Sie es nach der Installation erneut, wenn Sie mehrere Bildschirme steuern möchten."),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", "Der Bildschirm ist nicht angeschlossen, schalten Sie auf den ersten Bildschirm um."),
("No displays", "Keine Bildschirme"),
("elevated_switch_display_msg", "Wechseln Sie zum primären Bildschirm, da mehrere Bildschirme im erweiterten Modus nicht unterstützt werden."),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),

View File

@ -198,9 +198,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("upgrade_rustdesk_server_pro_to_{}_tip", "Please upgrade RustDesk Server Pro to version {} or newer!"),
("pull_group_failed_tip", "Failed to refresh group"),
("doc_fix_wayland", "https://rustdesk.com/docs/en/manual/linux/#x11-required"),
("switch_display_elevated_connections_tip", "Switching to non-primary display is not supported in the elevated mode when there are multiple connections. Please try again after installation if you want to control multiple displays."),
("switch_display_elevated_connections_tip", "Switching to non-primary display is not supported in the elevated user mode when there are multiple connections. Please try again after installation if you want to control multiple displays."),
("capture_display_elevated_connections_tip", "Capturing multiple displays is not supported in the elevated user mode. Please try again after installation if you want to control multiple displays."),
("display_is_plugged_out_msg", "The display is plugged out, switch to the first display."),
("elevated_switch_display_msg", "Switch to the primary display because multiple displays are not supported in elevated mode."),
("elevated_switch_display_msg", "Switch to the primary display because multiple displays are not supported in elevated user mode."),
("selinux_tip", "SELinux is enabled on your device, which may prevent RustDesk from running properly as controlled side."),
("id_input_tip", "You can input an ID, a direct IP, or a domain with a port (<domain>:<port>).\nIf you want to access a device on another server, please append the server address (<id>@<server_address>?key=<key_value>), for example,\n9123456234@192.168.16.1:21117?key=5Qbwsde3unUcJBtrx9ZkvUmwFNoExHzpryHuPUdqlWM=.\nIf you want to access a device on a public server, please input \"<id>@public\", the key is not needed for public server"),
("privacy_mode_impl_mag_tip", "Mode 1"),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", "Quitar el fonde de pantalla durante sesiones entrantes"),
("Test", "Probar"),
("switch_display_elevated_connections_tip", "Cambiar a una pantalla no principal no está soportado en el modo elevado cuando hay múltiples conexiones. Por favor, inténtalo de nuevo tras la instalación si quieres controlar múltiples pantallas."),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", "La pantalla está desconectada, cambia a la principal."),
("No displays", "No hay pantallas"),
("elevated_switch_display_msg", "Cambiar a la pantalla principal porque mútliples pantallas no están soportadas en modo elevado."),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", "Hilangkan latar dinding ketika ada sesi yang masuk"),
("Test", "Tes"),
("switch_display_elevated_connections_tip", "Pada mode elevasi, jika terdapat beberapa tampilan yang aktif, maka tidak diizinkan berpindah ke yang bukan tampilan utama, silahkan coba lagi setelah proses instalasi jika kamu ingin melakukan kontrol ke tampilan layar lainnya"),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", "Layar terputus, pindah ke layar pertama"),
("No displays", "Tidak ada tampilan"),
("elevated_switch_display_msg", "Pindah ke tampilan utama, pada mode elevasi, pengggunaan lebih dari satu layar tidak diizinkan"),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", "Rimuovi lo sfondo durante le sessioni in entrata"),
("Test", "Test"),
("switch_display_elevated_connections_tip", "Nella modalità elevata quando sono presenti più connessioni non è supportato il passaggio allo schermo non primario. Se vuoi controllare più schermi riprova dopo l'installazione."),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", "Lo schermo è scollegato, passo al primo schermo."),
("No displays", "Nessuno schermo"),
("elevated_switch_display_msg", "Passo allo schermo principale perché in modalità elevata non sono supportati più schermi."),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", "세션 수락시 배경화면 제거"),
("Test", "테스트"),
("switch_display_elevated_connections_tip", "권한을 승격한 후에는 사용자에게 다중 연결 요금이 부과되며 기본이 아닌 디스플레이로 전환할 수 없습니다. 여러 대의 모니터를 제어하려면 설치 후 다시 시도하세요"),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", "모니터의 연결이 끈어지면 첫 번째 모니터로 전환됩니다"),
("No displays", "디스플레이 없음"),
("elevated_switch_display_msg", "권한 상승 이후에는 다중 모니터 화면이 지원되지 않으므로 메인 모니터로 전환하세요"),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", "Noņemt fona tapeti ienākošo sesiju laikā"),
("Test", "Pārbaudīt"),
("switch_display_elevated_connections_tip", "Pārslēgšanās uz ne primāro displeju netiek atbalstīta paaugstinātajā režīmā, ja ir vairāki savienojumi. Lūdzu, mēģiniet vēlreiz pēc instalēšanas, ja vēlaties kontrolēt vairākus displejus."),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", "Displejs ir atvienots, pārslēdzieties uz pirmo displeju."),
("No displays", "Nav displeju"),
("elevated_switch_display_msg", "Pārslēdzieties uz primāro displeju, jo paaugstinātajā režīmā netiek atbalstīti vairāki displeji."),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", "Achtergrond verwijderen tijdens inkomende sessies"),
("Test", "Test"),
("switch_display_elevated_connections_tip", "Overschakelen naar een niet-hoofdbeeldscherm wordt niet ondersteund in de verhoogde modus wanneer er meerdere verbindingen zijn. Probeer het opnieuw na de installatie als je meerdere schermen wilt beheren."),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", "Beeldscherm is uitgeschakeld, schakel over naar het primaire beeldscherm."),
("No displays", "Geen beeldschermen"),
("elevated_switch_display_msg", "Schakel over naar het primaire beeldscherm, aangezien meerdere beeldschermen niet worden ondersteund in de modus met verhoogde rechten."),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", "Usuń tapetę podczas sesji przychodzących"),
("Test", "Test"),
("switch_display_elevated_connections_tip", "Przełączanie na ekran inny niż główny nie jest obsługiwane przy podniesionych uprawnieniach, gdy istnieje wiele połączeń. Jeśli chcesz sterować wieloma ekranami, należy zainstalować program."),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", "Ekran został odłączony, przełącz się na pierwszy ekran."),
("No displays", "Brak ekranów"),
("elevated_switch_display_msg", "Przełącz się na ekran główny, ponieważ wyświetlanie kilku ekranów nie jest obsługiwane przy podniesionych uprawnieniach."),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", "Удалять обои в сеансе"),
("Test", "Тест"),
("switch_display_elevated_connections_tip", "Переключение на неосновной дисплей не поддерживается в режиме повышенных прав при наличии нескольких подключений. Повторите попытку после установки, если хотите управлять несколькими дисплеями."),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", "Дисплей отключён, переключитесь на первый дисплей."),
("No displays", "Нет дисплеев"),
("elevated_switch_display_msg", "Переключитесь на основной дисплей, поскольку в режиме повышенных прав несколько дисплеев не поддерживаются."),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", "Odstrániť tapetu počas prichádzajúcich relácií"),
("Test", "Test"),
("switch_display_elevated_connections_tip", "Prepínanie na inú ako primárnu obrazovku nie je podporované vo zvýšenom režime, ak existuje viacero pripojení. Ak chcete ovládať viacero obrazoviek, skúste to po inštalácii znova."),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", "Obrazovka je odpojená, prepnite na prvú obrazovku."),
("No displays", "Žiadne obrazovky"),
("elevated_switch_display_msg", "Prepnite na primárnu obrazovku, pretože viacero obrazoviek nie je podporovaných vo zvýšenom režime."),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", "Прибирати шпалеру під час вхідних сеансів"),
("Test", "Тест"),
("switch_display_elevated_connections_tip", "В режимі розширених прав, коли є декілька підключень, не підтримується перемикання на неосновний дисплей. Якщо вам потрібен контроль декількох дисплеїв, будь ласка, спробуйте ще раз після встановлення"),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", "Дисплей відключено, перемкніться на перший дисплей"),
("No displays", "Відсутні дисплеї"),
("elevated_switch_display_msg", "Перемкніться на основний дисплей, оскільки в режимі розширених прав одночасне використання декілька дисплеїв не підтримуються."),

View File

@ -552,6 +552,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("capture_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),

View File

@ -2332,6 +2332,22 @@ impl Connection {
}
async fn capture_displays(&mut self, add: &[usize], sub: &[usize], set: &[usize]) {
#[cfg(windows)]
if portable_client::running() && (add.len() > 0 || set.len() > 1) {
log::info!("Capturing multiple displays is not supported in the elevated mode.");
let mut msg_out = Message::new();
let res = MessageBox {
msgtype: "nook-nocancel-hasclose".to_owned(),
title: "Prompt".to_owned(),
text: "capture_display_elevated_connections_tip".to_owned(),
link: "".to_owned(),
..Default::default()
};
msg_out.set_message_box(res);
self.send(msg_out).await;
return;
}
if let Some(sever) = self.server.upgrade() {
let mut lock = sever.write().unwrap();
for display in add.iter() {

View File

@ -878,15 +878,7 @@ pub mod client {
}
if portable_service_running {
log::info!("Create shared memory capturer");
if current_display == *display_service::PRIMARY_DISPLAY_IDX {
return Ok(Box::new(CapturerPortable::new(current_display)));
} else {
bail!(
"Ignore capture display index: {}, the primary display index is: {}",
current_display,
*display_service::PRIMARY_DISPLAY_IDX
);
}
return Ok(Box::new(CapturerPortable::new(current_display)));
} else {
log::debug!("Create capturer dxgi|gdi");
return Ok(Box::new(