/*cc -o /tmp/capture capture.c -framework IOKit -framework ApplicationServices -Wall -g */ #include #include #include #include #include #include #define MAX_DISPLAYS 16 int main( int argc, char * argv[] ) { CGDirectDisplayID dispids[MAX_DISPLAYS]; CGDisplayCount ndid, idx; CGError err; char c; CGGetActiveDisplayList(MAX_DISPLAYS, dispids, &ndid); for (idx = 0; idx < ndid; idx++) { err = CGDisplayCaptureWithOptions(dispids[idx], kCGCaptureNoFill); printf("CGDisplayCapture(%x) %d\n", dispids[idx], err); CGDisplayHideCursor(dispids[idx]); } c = getchar(); for (idx = 0; idx < ndid; idx++) { err = CGDisplayRelease(dispids[idx]); printf("CGDisplayRelease(%x) %d\n", dispids[idx], err); CGDisplayShowCursor(dispids[idx]); } return (0); }