UI

0

나는 웹 브라우저 컨트롤을 누르고 윈도우 양식을 가지고로 스크롤 한 후 화면을 캡처하는 스레드를 사용하는 방법, 즉 웹 브라우저가 변경됩니다 그 위치가UI

그래서 일단 고정 된 위치에서 자동으로의 나는 X를 배치 할 수있는 탐색 설정 그런 다음 양식에서 캡처 한 다음 위치를 Y로 변경하고 다른 캡처를 수행합니다.

내 문제는 내가 Y 동일하게 위치를 다시 변경해야합니다 마무리 한 후, 그래서 UI를 위치가 다음 캡처 코드를 수행 변경에게 기다려야한다

webBrowser1.Navigate("javascript:window.scroll(0," + X + ");"); 

같은 위치 탐색을 사용하는 것입니다 그런 다음 UI가 끝내고 캡처하도록 기다립니다.

나는 배경 작업자를 사용하려고하지만 나 또한 나를 지원하지는 못했지만 나도 그렇듯이, 나는 스레딩을 잘 다루지 않아서 캡처 전에 탐색하지 않았다. 내가 좋아하는 스레딩을 사용

ThreadStart captureFunc = new ThreadStart(CaptureScreen); 
Thread captureThread = new Thread(captureFunc); 
captureThread.Start(); 
while (!doneVal) 
{ 

} 
captureThread.Abort(); 

CaptureScreen 내 캡쳐 기능과 doneVal 기본적 허위 캡처 후 true로 변경하여 값된다. 도움이 될 것입니다.

+0

를 사용하여 동기화 프리미티브를. "동기화"를 만들기 위해 무한 루프하지 않아야합니다. –

+0

나는 쓰레드를 사용하는 것이 좋지 않다. 지금은 감사하고있다. :) – AshOoO

답변

0

WebBrowser -control은 Navigated -Event와 같은 Events을 제공합니다.
당신은 WebBrowser ▪ 제어의 탐색의 끝을 측정 할 수 있습니다 : 예`Mutex`,`Events`, 그리고`WaitHandles` 등

webBrowser1.Navigated += NavigatedEventHandler; //use in constructor for example 

... 

private void NavigatedEventHandler(object sender, NavigatedEventArgs e){ 

    //perform actions here 

} 
+0

이 이벤트는 URL을 탐색 할 때만 발생한다. 내 탐색은 스크롤 할 자바 스크립트 함수를 실행하는 것과 같다. 스크롤, 고마워. – AshOoO