fix(desktop): corrige autostart do Raven no Windows
This commit is contained in:
parent
8cf13c43de
commit
2f9cd56153
2 changed files with 29 additions and 29 deletions
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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,25 +568,13 @@ 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) => {
|
||||||
log_warn!("Auto-start: nao foi possivel validar entrada: {e}");
|
log_warn!("Auto-start: nao foi possivel validar entrada: {e}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
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")]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue