Вы должны убедиться, что для ShellExecute установлено значение false, чтобы перенаправление работало правильно.
Вам также следует открыть потоковую запись на нем, запустить процесс, дождаться завершения процесса и закрыть процесс,
Попробуйте заменить эти строки:
foreach(var v in lsStatic){
p.StandardInput.WriteLine(v);
}
p.StandardInput.Close();
на эти:
p.Start();
using (StreamWriter sr= p.StandardInput)
{
foreach(var v in lsStatic){
sr.WriteLine(v);
}
sr.Close();
}
// Wait for the write to be completed
p.WaitForExit();
p.Close();