Отправьте клавишу клавиатуры в уже запущенное фоновое консольное приложение, которое я создал сам через C#
Простой сценарий, 1 кнопка заключается в создании консольного процесса с аргументами для запуска записи видео ffmpeg. Как мне установить кнопку 2, чтобы остановить процесс записи. Предполагается, что это делается путем отправки клавиши клавиатуры "q" в запущенный процесс. У меня есть он работает, когда окно консоли видно, однако, если окно скрыто, как я могу передать ключ к этому окну?
Что я уже пробовал:
private void button1_Click(object sender, EventArgs e) { // Desktop and Mic audio recording process = new System.Diagnostics.Process(); startInfo = new System.Diagnostics.ProcessStartInfo(); startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; startInfo.FileName = "cmd.exe"; startInfo.Arguments = "/C ffmpeg -f gdigrab -i desktop -f dshow -i audio=\"Microphone (2- Logitech USB Hea\" -vcodec libx264 D:\\trial\\DesktopMic.mp4 "; process.StartInfo = startInfo; process.Start(); private void button2_Click(object sender, EventArgs e) { ?????????????????? }
Richard MacCutchan
Вам нужно подключить поток к stdin консольного приложения. Затем вы можете отправить сообщение в приложение. Однако приложение должно будет прослушивать входные данные. Честно говоря, консольные приложения на самом деле не так хорошо работают в этом сценарии, приложение windows было бы лучше.