2011-04-07 3 views
1

응용 프로그램 창의 스크린 샷을 캡처하고 싶습니다. 아래에서이 작업을 수행 할 수 있습니다. 그러나, 팔레 (parall)에서이 작업을 수행 할 수 있습니까? 아니면 순차적으로 수행해야합니까?C# Screen Capture in Parallel?

나는 현재 this의 사용을 만드는 중이라서 :

ScreenCapture sc = new ScreenCapture(); // capture entire screen, and save it to a file 
Image img = sc.CaptureScreen(); // display image in a Picture control named imageDisplay 
this.imageDisplay.Image = img; // capture this window, and save it 
sc.CaptureWindowToFile(this.Handle,"C:\\temp2.gif",ImageFormat.Gif); 

내가 두 개 이상의 응용 프로그램 창을 위해 병렬로 스크린 샷을 취할 수있는 방법이 있습니까?

답변

2

이전에이 라이브러리를 사용 해보지 않았지만 코드 예제에서 특정 창을 캡처하지는 않지만 전체 화면을 캡처 한 것 같습니다.

은 당신이 기능

public void CaptureWindowToFile(IntPtr handle, string filename, ImageFormat format) 

을 사용하고 당신이 캡처하고자하는 응용 프로그램의 윈도우의 핸들을 전달하려는 것 같다. 라이브러리와 함께 원하는만큼의 윈도우에서 사용할 수있는 것 같습니다. 정확한 윈도우 핸들을 얻는 것입니다.

+0

솔직히 말해서 위의 클래스를 사용하는 방법을 찾고 있지 않지만 동시에 다른 창, 즉 parrallel에서 창 이미지를 캡처하는 것이 가능한지 이해하고 싶습니다. – Abs

+0

그러면 귀하의 질문에 대한 대답은 '예'입니다. 라이브러리의 코드는 실제로 생성자에서 수행되는 것이 없으며 함수에 로컬로 적용되지 않는 변수가 없으므로 모두 정적으로 만들 수 있습니다. –

0

는 "스레드"로보고 할 수 있습니다 :

기본적으로

, 당신은 창 핸들 등을 제공 예를 들어, 특정 작업을 처리하는 동시 스레드를 실행한다 thread 작업의 파라미터

+0

그래, 내가 스레드의 사용을 이해하지만, 나는 화면 캡처의 프로세스가 스레드를 윈도우/화면을 한 번에 캡처하도록 제한하는 경우 해결하려고합니다. – Abs