Всем привет! Посылаю команду например Crtl+C в запущенный процесс:
Все работает пока я не включаю перенаправления Output, CreateNoWindow и и.д. psiProcInfo.WindowStyle = ProcessWindowStyle.Hidden; psiProcInfo.RedirectStandardError = true; psiProcInfo.RedirectStandardOutput = true; psiProcInfo.CreateNoWindow = true;
Почему это так, кто может подсказать плииз? ——-полный код—— private void button1_Click(object sender, EventArgs e) { process = new Process(); psiProcInfo = new ProcessStartInfo(); psiProcInfo.FileName = Application.StartupPath + @"\ffmpeg.exe"; psiProcInfo.Arguments = " -i 11.mp4 test.mp4"; psiProcInfo.UseShellExecute = false; psiProcInfo.WindowStyle = ProcessWindowStyle.Hidden; psiProcInfo.RedirectStandardError = true; psiProcInfo.RedirectStandardOutput = true; psiProcInfo.CreateNoWindow = true; process.StartInfo.RedirectStandardInput = true; process.StartInfo = psiProcInfo; process.Start(); } private void button2_Click(object sender, EventArgs e) { //Посылает букву q для stop rec Process proc = Process.GetProcessById(process.Id); IntPtr h = proc.MainWindowHandle; SetForegroundWindow(h); //SendKeys.SendWait("q"); SendKeys.SendWait("^(C)"); }
Всем привет! Посылаю команду например Crtl+C в запущенный процесс:
Все работает пока я не включаю перенаправления Output, CreateNoWindow и и.д. psiProcInfo.WindowStyle = ProcessWindowStyle.Hidden; psiProcInfo.RedirectStandardError = true; psiProcInfo.RedirectStandardOutput = true; psiProcInfo.CreateNoWindow = true;
Почему это так, кто может подсказать плииз? ——-полный код—— private void button1_Click(object sender, EventArgs e) { process = new Process(); psiProcInfo = new ProcessStartInfo(); psiProcInfo.FileName = Application.StartupPath + @"\ffmpeg.exe"; psiProcInfo.Arguments = " -i 11.mp4 test.mp4"; psiProcInfo.UseShellExecute = false; psiProcInfo.WindowStyle = ProcessWindowStyle.Hidden; psiProcInfo.RedirectStandardError = true; psiProcInfo.RedirectStandardOutput = true; psiProcInfo.CreateNoWindow = true; process.StartInfo.RedirectStandardInput = true; process.StartInfo = psiProcInfo; process.Start(); } private void button2_Click(object sender, EventArgs e) { //Посылает букву q для stop rec Process proc = Process.GetProcessById(process.Id); IntPtr h = proc.MainWindowHandle; SetForegroundWindow(h); //SendKeys.SendWait("q"); SendKeys.SendWait("^(C)"); }