naver / guitar

75 stars 18 forks source link

캡쳐 관련 문의 #445

Closed jojo6677 closed 5 years ago

jojo6677 commented 5 years ago

브라우저가 아닌 윈도우 프로그램을 부분 캡쳐하고 싶습니다. 원하는 윈도우 프로그램이 프로세스가 출력되지 않아 winactivate로 hWnd 값을 얻어내 컨트롤하고 있습니다. 메모장으로 연습해보니 case2의 경우 원하는 영역이 아닌 브라우저 기준으로 캡쳐가 되고 있습니다. (크롬 드라이버를 실행 중인 상태인데 크롬 기준으로 캡쳐가 됩니다.)

case1) notepad 프로세스선택 "5, 10, 100, 200, 파일명" 부분캡쳐 -> notepad의 설정된 영역을 부분캡쳐 a_b

case2) "$winactivate=winactivate('guitar.ini - 메모장')" 계산 "5, 10, 100, 200, 파일명" 부분캡쳐 -> IE, 크롬 등 백그라운드 브라우저 영역을 부분캡쳐 a_b

문의1) winactivate를 활용해 원하는 프로그램을 활성화하여 원하는 영역을 캡쳐하려면 어떻게 해야 할까요?

문의2 autoit > _ScreenCapture_CaptureWnd 기능을 활용해서 GUITAR에서 사용했는데 error가 발생합니다. Autoit에서 스크립트는 정상 동작하는데 무슨 문제가 있을까요?

$hWnd=winactivate('guitar.ini - 메모장') _ScreenCapture_CaptureWnd (@DesktopDir & "\test.jpg" , $hWnd, 5, 10, 100, 200)

ssmmhh commented 5 years ago

GUITAR는 작업방식에 따라 맞게 자동으로 캡쳐 방식이 바뀌어 집니다. webdriver 방식인 경우 webdriver 내에서 제공되는 캡쳐기능으로 캡쳐를 수행하기 때문에 해당 webdrvier가 컨트롤하지 못하는 (캡쳐는 제공하지 않는) 경우에는 캡쳐가 되지 않습니니다. 다만 말씀하신것과 같이 직접 autoit 명령어를 사용하면 직접 캡쳐를 할수 있습니다. 이 때는 guitar에서 제공하는 autoit 제약사항을 확인하시고 사용하시면 됩니다.

https://github.com/naver/guitar/issues/439

위와 같이 1줄 형태로 만들어 사용하시면 될것 입니다.

_ScreenCapture_CaptureWnd (@DesktopDir & "\test.jpg" , winactivate('guitar.ini - 메모장'), 5, 10, 100, 200)

jojo6677 commented 5 years ago

답변 정말 고맙습니다. 한 줄 형태로 만들어 사용하니 동작합니다. ^^