我通过模拟快捷方式“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取消屏幕截图,定时器不知道,它会继续检查粘贴板。那么,如何检测屏幕截图被取消?
请注意,通过单击鼠标按钮(而不是拖动矩形)也可以取消截屏。实现自己的屏幕捕获机制可能会更加健壮,特别是用于启动屏幕捕获的键盘快捷键也可以由用户在系统首选项中更改。 – omz 2012-01-29 16:40:35