2012-01-29 4 views
1

바로 가기 "cmd-shift-ctrl-4"를 시뮬레이션하여 활성화 된 화면 캡처를 실행합니다.화면 캡처를 감지하는 방법이 취소 되었습니까?

CGEventRef keyEventDown = CGEventCreateKeyboardEvent(NULL,keyCode,true); 
CGEventSetFlags(keyEventDown,flags); 
CGEventRef keyEventUp = CGEventCreateKeyboardEvent(NULL, keyCode, false); 
CGEventSetFlags(keyEventUp,flags); 

CGEventPost(kCGSessionEventTap, keyEventDown); 
CGEventPost(kCGSessionEventTap, keyEventUp); 

페이스트 보드의 changeCount를 확인하도록 NSTimer를 설정하십시오. "changeCount"가 변경된 경우 캡처가 완료되었음을 의미합니다.

그러나 문제는, 화면 캡처를 취소하기 위해 ESC 키를 누르면 타이머가이를 알지 못했고, 마스트 보드를 계속 확인합니다. 그럼, 화면 캡처를 감지하는 방법이 취소 되었습니까?

+1

화면 캡처는 사각형을 드래그하는 대신 마우스 버튼을 클릭하여 취소 할 수 있습니다. 특히 화면 캡처를 시작하기위한 키보드 단축키가 시스템 기본 설정의 사용자에 의해 변경 될 수 있으므로 자신의 화면 캡처 메커니즘을 구현하는 것이 더 강력 할 것입니다. – omz

답변

2

하드 코딩 된 키 시퀀스를 눌러 스크린 샷을 시작하는 대신 (해당 주석에 언급 된 omz가 잘못된 것일 수 있음) NSTask를 사용하여 screencapture을 실행하십시오. 출력 파일을 만들지 않고 프로세스가 종료되면 사용자가 취소됩니다.

+0

굉장! 고마워요. –

+0

신뢰할 수없는 가짜 키 프레스 덕분에 훨씬 좋습니다. – malhal

관련 문제