Выбор области на рабочем столе Mac OS X - PullRequest
0 голосов
/ 21 апреля 2009

Если вы нажмете cmd + shift + 4 в Mac OS X, вы сможете выбрать область на экране с соответствующими координатами, как показано. Мне нужно реализовать такую ​​функцию в одном из моих приложений и понятия не имею, как это сделать. Кто-нибудь может дать мне несколько советов по этому поводу?

Thx.

Ответы [ 2 ]

2 голосов
/ 21 апреля 2009

Этот фрагмент кода вернет CGImageRef, который содержит все, что показано на рабочем столе для данного прямоугольника. Это требует инфраструктуры ApplicationServices. Координаты экрана перевернуты, и начало координат находится в верхнем левом углу экрана. В этом случае ссылка на изображение будет принадлежать вызывающей стороне и должна будет быть освобождена с CGImageRelease, когда вызывающая сторона закончит с ней.

#import <ApplicationServices/ApplicationServices.h>

CGImageRef createScreenCapture(CGRect rect) {
  CGImageRef image = CGWindowCreateImage(
                       rect,
                       kCGWindowListOptionOnScreenOnly,
                       0,
                       kCGWindowImageDefault);
  return image;
}
1 голос
/ 21 апреля 2009

Обычно это делается с помощью полупрозрачного наложенного окна, которое покрывает все пространство рабочего стола.

У Apple есть более старый пример кода , который должен дать вам старт.

...