Vb.net 如何暂停ffmpeg而不是在没有窗口的情况下运行?
我正在开发一个视频转换器,我想通过按下一个按钮来停止或暂停ffmpeg。谷歌搜索我找到了一种方法,但它不起作用。基本上,我是这样在后台工作程序上启动ffmpeg的:Vb.net 如何暂停ffmpeg而不是在没有窗口的情况下运行?,vb.net,ffmpeg,backgroundworker,sendkeys,pausing-execution,Vb.net,Ffmpeg,Backgroundworker,Sendkeys,Pausing Execution,我正在开发一个视频转换器,我想通过按下一个按钮来停止或暂停ffmpeg。谷歌搜索我找到了一种方法,但它不起作用。基本上,我是这样在后台工作程序上启动ffmpeg的: Private Sub bw_DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs) Dim Proc As New Process Proc.StartInfo.UseShellExecute = False Proc
Private Sub bw_DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs)
Dim Proc As New Process
Proc.StartInfo.UseShellExecute = False
Proc.StartInfo.RedirectStandardError = True
Proc.StartInfo.RedirectStandardOutput = True
Proc.StartInfo.FileName = current_ffmpeg_path
Proc.StartInfo.Arguments = input_params
Proc.StartInfo.CreateNoWindow = True
Proc.Start()
[do things...]
然后在循环内放置一个if以暂停ffmpeg:
If (pause = 1 Or pause = 2) Then
AppActivate(Proc.Id)
SendKeys.SendWait("^(s)")
SetForegroundWindow(Me)
pause = 0
End If
但它不起作用。。可能是因为AppActivate需要一个窗口来工作,而ffmpeg在没有窗口的情况下运行。还有别的办法吗?可能不使用sendkeys?已解决。无法对没有窗口的进程使用SendKeys。。请改用NtSuspendProcess和NtResumeProcess 更多关于谷歌的信息:
p/invoke NtResumeProcess/NtSuspendProcess是可调用的平台API可能与否重复这是另一个问题。。。如果没有窗口,我如何发送程序密钥?没有人可以帮助我?我只找到了一种关闭ffmpeg的方法,但是通过进程。杀死。。。我需要发送命令以正确关闭或暂停ffmpeg