Вы можете использовать std::os::windows::process::CommandExt::creation_flags
. Пожалуйста, обратитесь к странице документации для Флаги создания процесса или в идеале используйте константы из winapi .
Вы писали, что это приложение GUI, поэтому я Предположим, вам не нужен консольный вывод на этом. DETACHED_PROCESS
не создает conhost.exe, но если вы хотите обработать вывод, вы должны использовать CREATE_NO_WINDOW
.
Я бы также рекомендовал использовать start
в качестве команды, потому что в противном случае вам придется использовать cmd.exe
, и это, вероятно, задержит запуск на несколько миллисекунд.
Пример
use std::process::Command;
use std::os::windows::process::CommandExt;
const CREATE_NO_WINDOW: u32 = 0x08000000;
const DETACHED_PROCESS: u32 = 0x00000008;
let mut command = Command::new("cmd").args(&["/C", "start", &exe_path]);
command.creation_flags(DETACHED_PROCESS); // Be careful: This only works on windows
// If you use DETACHED_PROCESS you could set stdout, stderr, and stdin to Stdio::null() to avoid possible allocations.