簡體   English   中英

如何使用Cocoa或C ++在Mac OS X中截取屏幕截圖

[英]How to take screenshot in Mac OS X using Cocoa or C++

如何在Mac OS X中以程序方式截取桌面區域的截圖?

我見過的兩個有趣的選項,但還是專業使用,是screencapture實用程序和MacFuse演示。

根據手冊頁,screencapture實用程序自10.2以來就已存在,並且可以通過使用NSTask鏈接到Cocoa應用程序。

MacFuse演示通過每次打開文件夾時創建新的屏幕截圖或類似的東西來工作。 您可以在需要時編寫快速腳本來訪問圖像,而無需讓腳本實際在該計算機上運行。

但嚴重的是,Apple還有一些名為“Son of Grab”的示例代碼,它使用了新的CGWindow API,非常棒。

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

實現此目的的一種方法是將NSTask與'screencapture'命令行命令結合使用。

例如:

NSTask *theProcess;
theProcess = [[NSTask alloc] init];

[theProcess setLaunchPath:@"/usr/sbin/screencapture"];
// use arguments to set save location
[theProcess setArguments:@"blahblah"];
[theProcess launch];

您可以打開文件,無論您將其保存在哪里,進行處理,然后根據需要將其刪除。 顯然是權宜之計,但它會奏效。

如果你對Leopard的兼容性很好,那么有一個非常強大的新CGWindow API可以讓你抓住任何范圍的窗口層的屏幕截圖,窗口鏡頭或復合材料。

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

Qt在examples \\ desktop \\ screenshot中包含一個示例屏幕截圖應用程序。 Qt適用於各種平台,包括MacOSX。

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

如果您嘗試使用C ++或python完成此操作,以下內容可能會有所幫助。 此外,如果您希望程序化方法可以跨平台移植,這將更有幫助。 (Windows,Linux,Mac osx,甚至更遠)

較早的回應提到了QT。

與QT允許捕獲和保存屏幕截圖的方式相同,另一個“競爭”框架,即wxWidgets也是如此。 wxWidgets是一個C ++框架,但它也通過wxPython提供python綁定。

要閱讀更多內容,請使用以下鏈接,在書中搜索wxScreenDC,然后從與搜索匹配的頁面列表中選擇“頁面139”:

http://books.google.com/books?id=CyMsvtgnq0QC&vq="accessing+the+screen+with+wxScreendc”

如果你考慮使用REALbasic,這對於RB和MBS插件來說非常容易。 我剛剛編寫了一個使用RB和MBS插件進行定時屏幕截圖的應用程序。 你可以在這里閱讀: http//tektalkin.blogspot.com/2008/08/screenaudit-for-mac-osx.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM