Как обнаружить снимок экрана отменяется? - PullRequest
1 голос
/ 29 января 2012

Я активировал захват экрана путем имитации ярлыка "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);

и настроил NSTimer для проверки changeCount на монтажной панели.если «changeCount» изменился, значит, захват был сделан.

Но проблема в том, что если я нажму ESC, чтобы отменить захват экрана, таймер не узнает об этом, он продолжит проверку монтажной панели.Итак, как обнаружить снимок экрана отменяется?

1 Ответ

2 голосов
/ 30 января 2012

Вместо запуска снимка экрана путем нажатия жестко закодированной последовательности клавиш (которая, как отмечал omz в своем комментарии, может быть неправильной), используйте NSTask для запуска screencapture . Если процесс завершается без создания выходного файла, пользователь отменяет действие.

...