В общем нужно заюзать CreateProcessW и передать в STARTUPINFOW параметр lpTitle (или не передать, в зависимости от значения Option), пытался сделать так:
...
let cl_title: Option<Vec<u16>> = startup_info.lp_title.map(|s| OsStr::new(s).encode_wide().chain(once(0)).collect());
...
let mut the_startup_info: STARTUPINFOW = STARTUPINFOW
{
cb: std::mem::size_of::<STARTUPINFOW>() as u32,
lpReserved: std::ptr::null_mut(),
lpTitle: lp_title,
...
}
...
CreateProcessW(...)
Всё запускается нормально, но в качестве заголовка окна консоли – ерунда, из чего я делаю вывод о том, что к моменту вызова CreateProcessW память освобождается, как сделать правильно?
Структуру STARTUPINFO можно уничтожать сразу после создания нового процесса, не дожидаясь его завершения.
Да, и предложенный в этом посте вариант всё равно оставляет у меня чувство кривости, хотя, может быть я придираюсь – х/з.