0

저는 비디오 변환기에서 작업 중이며 버튼을 눌러 ffmpeg를 중지하거나 일시 중지 할 수 있기를 원했습니다. Google 검색 방법을 찾았지만 작동하지 않습니다.ffmpeg를 일시 중지하는 방법 창없이 실행하는 것보다?

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...] 

다음 루프 내부에 내가 일시 정지하는 경우는 FFmpeg 장소 : 기본적으로 나는이 방법에 대한 배경 지식 노동자는 FFmpeg를 시작

If (pause = 1 Or pause = 2) Then 
     AppActivate(Proc.Id) 
     SendKeys.SendWait("^(s)") 
     SetForegroundWindow(Me) 
     pause = 0 
    End If 

을하지만 .. 필요에 AppActivate 어쩌면 원인을 작동하지 않습니다 ffmpeg가 대신 실행되는 동안 작동하는 창. 다른 방법이 있습니까? 어쩌면 sendkeys가 아닌가?

+0

가능한 중복 있습니다 NtResumeProcess/NtSuspendProcess [VB.NET : 다른 하위 루프에서 주 양식 컨트롤을 유지하는 방법?] (http://stackoverflow.com/questions/28265331/vb-net-how-to-maintain-main-form-control-during-loops -in-other-sub) – Plutonix

+0

아니요 다른 질문입니다 ... 창없이 프로그램에 키를 보내려면 어떻게해야합니까 ?? –

+0

아무도 나를 도울 수 없습니까? 나는 ffmpeg를 닫을 수있는 방법을 찾았지만 process.kill()에 의해 ... ffmpeg를 적절하게 닫거나 일시 중지하려면 명령을 보내야합니다. –

답변

0

해독되었습니다. 그것은 .. 창없이 공정 불가능 사용에서 SendKeys를의 사용 대신 NtSuspendProcess 및 NtResumeProcess ..

더 많은 정보에 대한 인터넷 검색 :

P/호출 호출 플랫폼 API를의