The problem is with:
Thread.Sleep(500);
SendKeys.SendWait("1");
SendWait is for the active process, to be sure that input is going to your Process p, use p.StandardInput. Any write to StandardInput will go to your Process p ("C:\\Users\\...\\noname01.exe")