2013-10-28 1 views

답변

0
string process = //...process name 

Process p = Process.GetProcessesByName(process).FirstOrDefault(); 
if(p != null) 
{ 
    IntPtr h = p.MainWindowHandle; 
    SetForegroundWindow(h); 
    SendKeys.SendWait("q"); 
} 
+0

SetForegroundWindow (h); SendKeys.SendWait ("q"); –

+0

은 인식 할 수없는 오류입니다. –

0

FFMpeg는 SIGINT에 올바르게 응답하고 비디오 컨테이너 파일 작성을 완료해야합니다.

(당신이 C#에서 신호를 전송에 대한 정보를 필요로하는 경우 this 참조) 내가는 FFmpeg의 최신 버전이 더 이상 'Q'를 사용하지 않고 대신 종료하려면 Ctrl-C를 요구 생각

.

+0

및 asp.net0에서 cmd로 신호를 전달하는 방법. –

+0

어떤 언어? – jeremy

+0

asp.net 백엔드에서 C# 사용 –

0

사용이 코드 : 나 프로세스를 종료하기위한 설정 아래에 노력하고 있습니다

[System.Runtime.InteropServices.DllImport("User32.dll", EntryPoint = "PostMessageA")] 
private static extern bool PostMessage(IntPtr hWnd, uint msg, int wParam, int lParam); 

int Key_Q = 81; 
PostMessage(hWnd, 0x100, Key_Q, 0); 
0

. 위의 예에서 3 초 후에 트리거되지만 언제든지 비동기 적으로 'q'를 프로세스에 전달할 수 있습니다. 그렇지 않으면 특정 시간만큼 레코드를 설정하는 것이 더 합리적입니다.

  string outputFile = "output.mp4"; 
      if(File.Exists(outputFile)) 
      { 
       File.Delete(outputFile); 
      } 
      string arguments = "-f dshow -i video=\"screen-capture-recorder\" -video_size 1920x1080 -vcodec libx264 -pix_fmt yuv420p -preset ultrafast " + outputFile; 

      //run the process 
      Process proc = new Process(); 

      proc.StartInfo.FileName = "ffmpeg.exe"; 
      proc.StartInfo.Arguments = arguments; 
      proc.StartInfo.UseShellExecute = false; 
      proc.StartInfo.CreateNoWindow = true; 

      proc.StartInfo.RedirectStandardError = true; 
      proc.StartInfo.RedirectStandardOutput = true; 
      proc.StartInfo.RedirectStandardInput = true; 

      proc.ErrorDataReceived += build_ErrorDataReceived; 
      proc.OutputDataReceived += build_OutDataReceived; 
      proc.EnableRaisingEvents = true; 
      proc.Start(); 

      proc.BeginOutputReadLine(); 
      proc.BeginErrorReadLine(); 

      await Task.Delay(3000); 

      StreamWriter inputWriter = proc.StandardInput; 
      inputWriter.WriteLine("q"); 

      proc.WaitForExit(); 
      proc.Close(); 
      inputWriter.Close(); 
관련 문제