Мне нужно порождать процессы из моей программы на C #, но в некоторых случаях полный путь к исполняемому файлу может превышать 256 символов.
Я изучил несколько связанных тем на этом сайте, а также эту статью @ MSDN .Согласно этой информации, это должно быть возможно с использованием префикса \\?\
, но я все еще не могу заставить его работать.Похоже, система пытается запустить процесс, но не удается.Вместо этого я получаю сообщение "SmartScreen has stopped working
".
Я что-то упустил?Вот мой код:
private void button2_Click(object sender, EventArgs e)
{
ProcessStartInfo start = new ProcessStartInfo();
start.Arguments = "";
start.FileName = @"\\?\c:\11111111111111111111111111111111111111111111\222222222222222222222222222222222222222222222\3333333333333333333333333333333333333333333333\444444444444444444444444444444444444444444444\5555555555555555555555555555555555555555555555\6666666666666666666666666666666666666666666666\test.exe";
start.WindowStyle = ProcessWindowStyle.Normal;
start.CreateNoWindow = true;
int exitCode;
using (Process proc = Process.Start(start))
{
proc.WaitForExit();
exitCode = proc.ExitCode;
MessageBox.Show(String.Format("Exit code: {0}", exitCode));
}
}
Я запускаю это на Windows 10, версия 1703 (сборка ОС 15063.1387).