1/*cc -o /tmp/capture capture.c -framework IOKit -framework ApplicationServices -Wall -g 2*/ 3 4 5#include <IOKit/IOKitLib.h> 6#include <ApplicationServices/ApplicationServices.h> 7#include <IOKit/i2c/IOI2CInterface.h> 8 9#include <assert.h> 10#include <stdio.h> 11#include <unistd.h> 12 13#define MAX_DISPLAYS 16 14 15int main( int argc, char * argv[] ) 16{ 17 CGDirectDisplayID dispids[MAX_DISPLAYS]; 18 CGDisplayCount ndid, idx; 19 CGError err; 20 char c; 21 22 CGGetActiveDisplayList(MAX_DISPLAYS, dispids, &ndid); 23 24 for (idx = 0; idx < ndid; idx++) 25 { 26 err = CGDisplayCaptureWithOptions(dispids[idx], kCGCaptureNoFill); 27 printf("CGDisplayCapture(%x) %d\n", dispids[idx], err); 28 CGDisplayHideCursor(dispids[idx]); 29 } 30 31 c = getchar(); 32 33 for (idx = 0; idx < ndid; idx++) 34 { 35 err = CGDisplayRelease(dispids[idx]); 36 printf("CGDisplayRelease(%x) %d\n", dispids[idx], err); 37 CGDisplayShowCursor(dispids[idx]); 38 } 39 40 return (0); 41} 42