println in winmain

This commit is contained in:
rustdesk 2023-07-08 12:34:40 +08:00
parent 685d960b1e
commit afd77181ff
3 changed files with 42 additions and 5 deletions

View File

@ -6,6 +6,18 @@ use hbb_common::log;
#[cfg(not(any(target_os = "android", target_os = "ios")))] #[cfg(not(any(target_os = "android", target_os = "ios")))]
use hbb_common::platform::register_breakdown_handler; use hbb_common::platform::register_breakdown_handler;
#[macro_export]
macro_rules! my_println{
($($arg:tt)*) => {
#[cfg(not(windows))]
println!("{}", format_args!($($arg)*));
#[cfg(windows)]
crate::platform::message_box(
&format!("{}", format_args!($($arg)*))
);
};
}
/// shared by flutter and sciter main function /// shared by flutter and sciter main function
/// ///
/// [Note] /// [Note]
@ -83,7 +95,7 @@ pub fn core_main() -> Option<Vec<String>> {
args.clear(); args.clear();
} }
if args.len() > 0 && args[0] == "--version" { if args.len() > 0 && args[0] == "--version" {
println!("{}", crate::VERSION); my_println!("{}", crate::VERSION);
return None; return None;
} }
#[cfg(windows)] #[cfg(windows)]
@ -225,16 +237,18 @@ pub fn core_main() -> Option<Vec<String>> {
if args.len() == 2 { if args.len() == 2 {
if crate::platform::is_root() { if crate::platform::is_root() {
crate::ipc::set_permanent_password(args[1].to_owned()).unwrap(); crate::ipc::set_permanent_password(args[1].to_owned()).unwrap();
my_println!("Done!");
} else { } else {
println!("Administrative privileges required!"); my_println!("Administrative privileges required!");
} }
} }
return None; return None;
} else if args[0] == "--get-id" { } else if args[0] == "--get-id" {
#[cfg(windows)]
if crate::platform::is_root() { if crate::platform::is_root() {
println!("{}", crate::ipc::get_id()); my_println!("{}", crate::ipc::get_id());
} else { } else {
println!("Permission denied!"); my_println!("Permission denied!");
} }
return None; return None;
} else if args[0] == "--check-hwcodec-config" { } else if args[0] == "--check-hwcodec-config" {

View File

@ -2297,3 +2297,26 @@ mod tests {
assert_eq!(chr, None) assert_eq!(chr, None)
} }
} }
pub fn message_box(text: &str) {
let mut text = text.to_owned();
if !text.ends_with("!") {
use arboard::Clipboard as ClipboardContext;
match ClipboardContext::new() {
Ok(mut ctx) => {
ctx.set_text(&text).ok();
text = format!("{}\n\nAbove text has been copied to clipboard", &text);
}
_ => {}
}
}
let text = text
.encode_utf16()
.chain(std::iter::once(0))
.collect::<Vec<u16>>();
let caption = "RustDesk Output"
.encode_utf16()
.chain(std::iter::once(0))
.collect::<Vec<u16>>();
unsafe { MessageBoxW(std::ptr::null_mut(), text.as_ptr(), caption.as_ptr(), MB_OK) };
}