fix: delete .old.exe on startup + use cmd start for new window

This commit is contained in:
Helios Agent 2026-03-06 14:30:01 +01:00
parent dbdafcfbd1
commit a3100a872b
No known key found for this signature in database
GPG key ID: C8259547CD8309B5

View file

@ -221,6 +221,13 @@ async fn main() {
banner();
// Clean up leftover .old.exe from previous self-update (Windows can't delete running exe)
#[cfg(target_os = "windows")]
if let Ok(exe) = std::env::current_exe() {
let old = exe.with_extension("old.exe");
let _ = std::fs::remove_file(&old);
}
// Single instance check
if !acquire_instance_lock() {
display::err("", "Another instance of helios-remote is already running.");
@ -716,9 +723,11 @@ async fn handle_message(
let args: Vec<String> = std::env::args().skip(1).collect();
#[cfg(target_os = "windows")]
{
use std::os::windows::process::CommandExt;
const CREATE_NEW_CONSOLE: u32 = 0x00000010;
let _ = std::process::Command::new(&exe).args(&args).creation_flags(CREATE_NEW_CONSOLE).spawn();
// Use "start" to open a new visible console window
let exe_str = exe.to_string_lossy();
let _ = std::process::Command::new("cmd")
.args(["/c", "start", "", &exe_str])
.spawn();
}
#[cfg(not(target_os = "windows"))]
let _ = std::process::Command::new(&exe).args(&args).spawn();