fix(desktop): corrige autostart do Raven no Windows

This commit is contained in:
esdrasrenan 2025-12-12 21:36:49 -03:00
parent 8cf13c43de
commit 2f9cd56153
2 changed files with 29 additions and 29 deletions

View file

@ -17,7 +17,7 @@ fn main() {
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security> <security>
<requestedPrivileges> <requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> <requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges> </requestedPrivileges>
</security> </security>
</trustInfo> </trustInfo>

View file

@ -478,8 +478,14 @@ pub fn run() {
#[cfg(target_os = "windows")] #[cfg(target_os = "windows")]
{ {
let start_in_background = std::env::args().any(|arg| arg == "--background");
setup_raven_autostart(); setup_raven_autostart();
setup_tray(&app.handle())?; setup_tray(&app.handle())?;
if start_in_background {
if let Some(win) = app.get_webview_window("main") {
let _ = win.hide();
}
}
// Tenta iniciar o agente e chat em background se houver credenciais salvas // Tenta iniciar o agente e chat em background se houver credenciais salvas
let app_handle = app.handle().clone(); let app_handle = app.handle().clone();
@ -541,13 +547,19 @@ fn setup_raven_autostart() {
let hkcu = RegKey::predef(HKEY_CURRENT_USER); let hkcu = RegKey::predef(HKEY_CURRENT_USER);
match hkcu.open_subkey_with_flags( let key = match hkcu.create_subkey(r"Software\Microsoft\Windows\CurrentVersion\Run") {
r"Software\Microsoft\Windows\CurrentVersion\Run", Ok((key, _)) => key,
KEY_SET_VALUE | KEY_READ, Err(e) => {
) { log_error!("Falha ao criar/abrir chave de registro Run: {e}");
Ok(key) => { return;
match key.set_value("Raven", &value) { }
Ok(()) => { };
if let Err(e) = key.set_value("Raven", &value) {
log_error!("Falha ao definir valor de auto-start no registro: {e}");
return;
}
log_info!("Auto-start configurado: {value}"); log_info!("Auto-start configurado: {value}");
// Valida que foi salvo corretamente // Valida que foi salvo corretamente
@ -556,9 +568,7 @@ fn setup_raven_autostart() {
if saved == value { if saved == value {
log_info!("Auto-start validado: entrada existe no registro"); log_info!("Auto-start validado: entrada existe no registro");
} else { } else {
log_warn!( log_warn!("Auto-start: valor difere. Esperado: {value}, Salvo: {saved}");
"Auto-start: valor difere. Esperado: {value}, Salvo: {saved}"
);
} }
} }
Err(e) => { Err(e) => {
@ -566,16 +576,6 @@ fn setup_raven_autostart() {
} }
} }
} }
Err(e) => {
log_error!("Falha ao definir valor de auto-start no registro: {e}");
}
}
}
Err(e) => {
log_error!("Falha ao abrir chave de registro Run: {e}");
}
}
}
#[cfg(target_os = "windows")] #[cfg(target_os = "windows")]
fn setup_tray(app: &tauri::AppHandle) -> tauri::Result<()> { fn setup_tray(app: &tauri::AppHandle) -> tauri::Result<()> {