如何用c#向FFMPEG发送命令“q”

时间:2015-09-15 17:14:28

标签: c# ffmpeg

如何使用C#发送命令“q”来处理打开的FFMPEG?看下面的代码:

        var p = Process.GetProcessesByName("ffmpeg").FirstOrDefault();

        if (p != null)
        {
            //Here my test
            p.StandardInput.Write("q");

        }

我在下面提到了这个错误:

enter image description here

1 个答案:

答案 0 :(得分:3)

您可以使用user32 api的SendMessage调用。

[DllImport("user32.dll", EntryPoint = "FindWindowEx")]
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter,          string lpszClass, string lpszWindow);
[DllImport("User32.dll")]
public static extern int SendMessage(IntPtr hWnd, int uMsg, int wParam, string lParam);

 static void Send(string message)
 {
 Process[] notepads = Process.GetProcessesByName("notepad");
 if (notepads.Length == 0)
 return;
 if (notepads[0] != null)
 {
 IntPtr child = FindWindowEx(notepads[0].MainWindowHandle, new   IntPtr(0), "Edit", null);
 SendMessage(child, 0x000C, 0, message);
 }

根据您的需要进行更改。我不确定它会对你的情况有效,但尝试总是好的。

古德勒克。