Подтвердить что ты не робот

Как сделать снимок экрана в Mac OS X с помощью Cocoa или С++

Как сделать скриншот программно на рабочем столе в Mac OS X?

4b9b3361

Ответ 1

Два интересных варианта, которые я видел, но все же для профессионального использования - утилита screencapture и демонстрация MacFuse.

Утилита screencapture работает с 10.2, согласно странице руководства, и может быть связана с приложением Cocoa с помощью NSTask.

Демо-версия MacFuse работала, создавая новый скриншот каждый раз, когда открывалась папка или что-то в этом роде. Идея заключалась в том, что вы могли быстро написать script для доступа к изображению, когда вам это нужно, без необходимости запуска script на этом компьютере.

Но серьезно, у Apple есть еще один пример кода под названием "Сын грабежа", который использует новый API CGWindow, который является довольно удивительным.

http://developer.apple.com/samplecode/SonOfGrab/

Ответ 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, который позволит вам захватывать снимки экрана, снимки окон или композиты любого диапазона оконных слоев.

http://developer.apple.com/samplecode/SonOfGrab/

Ответ 4

Qt включает пример скриншота в примерах \desktop\screenshot. Qt работает на различных платформах, включая MacOSX.

http://trolltech.com/products/qt/

Ответ 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