Как сделать скриншот программно на рабочем столе в Mac OS X?
Как сделать снимок экрана в Mac OS X с помощью Cocoa или С++
Ответ 1
Два интересных варианта, которые я видел, но все же для профессионального использования - утилита screencapture и демонстрация MacFuse.
Утилита screencapture работает с 10.2, согласно странице руководства, и может быть связана с приложением Cocoa с помощью NSTask.
Демо-версия MacFuse работала, создавая новый скриншот каждый раз, когда открывалась папка или что-то в этом роде. Идея заключалась в том, что вы могли быстро написать script для доступа к изображению, когда вам это нужно, без необходимости запуска script на этом компьютере.
Но серьезно, у Apple есть еще один пример кода под названием "Сын грабежа", который использует новый API CGWindow, который является довольно удивительным.
Ответ 2
Один из способов сделать это - использовать NSTask в сочетании с командой командной строки screencapture.
Например:
NSTask *theProcess;
theProcess = [[NSTask alloc] init];
[theProcess setLaunchPath:@"/usr/sbin/screencapture"];
// use arguments to set save location
[theProcess setArguments:@"blahblah"];
[theProcess launch];
Вы можете открыть файл, где бы вы ни говорили, чтобы он был сохранен, обработать его, а затем удалить его по мере необходимости. Очевидно, остановка, но это сработает.
Ответ 3
Если вы в порядке с совместимостью с Leopard, есть очень мощный новый API CGWindow, который позволит вам захватывать снимки экрана, снимки окон или композиты любого диапазона оконных слоев.
Ответ 4
Qt включает пример скриншота в примерах \desktop\screenshot. Qt работает на различных платформах, включая MacOSX.
Ответ 5
Следующие действия могут оказаться полезными, если вы пытаетесь выполнить это с помощью С++ или python. Кроме того, это будет еще более полезно в том случае, если вы хотите, чтобы ваш программный метод был межплатформенным. (Windows, Linux, Mac OSX и даже больше)
В более раннем ответе упоминается QT.
Таким же образом QT позволит вам захватить и сохранить скриншот, так же как и другая "конкурирующая" структура, а именно wxWidgets. wxWidgets - это среда С++, но она также обеспечивает привязки python через wxPython.
Чтобы узнать больше, используйте следующую ссылку, выполните поиск книги wxScreenDC и выберите "Страница 139" из списка страниц, соответствующих поиску:
http://books.google.com/books?id=CyMsvtgnq0QC&vq= "доступ + экран + с + wxScreendc"
Ответ 6
Если вы считаете REALbasic, это очень легко сделать с RB и плагинами MBS. Я только что написал приложение, которое выполняет скриншоты с использованием RB и плагинов MBS. Вы можете прочитать об этом здесь: http://tektalkin.blogspot.com/2008/08/screenaudit-for-mac-osx.html