quick support if right click && run as admin on win
Signed-off-by: 21pages <pages21@163.com>
This commit is contained in:
		
							parent
							
								
									6e36aa8c56
								
							
						
					
					
						commit
						7c2d7df62e
					
				| @ -54,11 +54,6 @@ pub fn core_main() -> Option<Vec<String>> { | ||||
|         return core_main_invoke_new_connection(std::env::args()); | ||||
|     } | ||||
|     let click_setup = cfg!(windows) && args.is_empty() && crate::common::is_setup(&arg_exe); | ||||
|     #[cfg(not(feature = "flutter"))] | ||||
|     { | ||||
|         _is_quick_support = | ||||
|             cfg!(windows) && args.is_empty() && arg_exe.to_lowercase().ends_with("qs.exe"); | ||||
|     } | ||||
|     if click_setup { | ||||
|         args.push("--install".to_owned()); | ||||
|         flutter_args.push("--install".to_string()); | ||||
| @ -70,6 +65,14 @@ pub fn core_main() -> Option<Vec<String>> { | ||||
|         println!("{}", crate::VERSION); | ||||
|         return None; | ||||
|     } | ||||
|     #[cfg(windows)] | ||||
|     { | ||||
|         _is_quick_support |= !crate::platform::is_installed() | ||||
|             && args.is_empty() | ||||
|             && (arg_exe.to_lowercase().ends_with("qs.exe") | ||||
|                 || (!click_setup && crate::platform::is_elevated(None).unwrap_or(false))); | ||||
|         crate::portable_service::client::set_quick_support(_is_quick_support); | ||||
|     } | ||||
|     #[cfg(debug_assertions)] | ||||
|     { | ||||
|         use hbb_common::env_logger::*; | ||||
|  | ||||
| @ -459,6 +459,7 @@ pub mod client { | ||||
|         static ref RUNNING: Arc<Mutex<bool>> = Default::default(); | ||||
|         static ref SHMEM: Arc<Mutex<Option<SharedMemory>>> = Default::default(); | ||||
|         static ref SENDER : Mutex<mpsc::UnboundedSender<ipc::Data>> = Mutex::new(client::start_ipc_server()); | ||||
|         static ref QUICK_SUPPORT: Arc<Mutex<bool>> = Default::default(); | ||||
|     } | ||||
| 
 | ||||
|     pub enum StartPara { | ||||
| @ -561,6 +562,10 @@ pub mod client { | ||||
|         *SHMEM.lock().unwrap() = None; | ||||
|     } | ||||
| 
 | ||||
|     pub fn set_quick_support(v: bool) { | ||||
|         *QUICK_SUPPORT.lock().unwrap() = v; | ||||
|     } | ||||
| 
 | ||||
|     fn set_dir_permission(dir: &PathBuf) -> bool { | ||||
|         // // give Everyone RX permission
 | ||||
|         std::process::Command::new("icacls") | ||||
| @ -685,17 +690,7 @@ pub mod client { | ||||
|         use DataPortableService::*; | ||||
|         let rx = Arc::new(tokio::sync::Mutex::new(rx)); | ||||
|         let postfix = IPC_SUFFIX; | ||||
|         #[cfg(feature = "flutter")] | ||||
|         let quick_support = { | ||||
|             let args: Vec<_> = std::env::args().collect(); | ||||
|             args.contains(&"--quick_support".to_string()) | ||||
|         }; | ||||
|         #[cfg(not(feature = "flutter"))] | ||||
|         let quick_support = std::env::current_exe() | ||||
|             .unwrap_or("".into()) | ||||
|             .to_string_lossy() | ||||
|             .to_lowercase() | ||||
|             .ends_with("qs.exe"); | ||||
|         let quick_support = QUICK_SUPPORT.lock().unwrap().clone(); | ||||
| 
 | ||||
|         match new_listener(postfix).await { | ||||
|             Ok(mut incoming) => loop { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user