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