2008-09-02 36 views

答えて

3

Qtには、examples \ desktop \ screenshotのスクリーンショットアプリが含まれています。 QtはMacOSXを含むさまざまなプラットフォームで動作します。

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

0

あなたはREALbasicのを考えると、これはRBとMBSプラグインで行うのは非常に簡単です。私は、RBとMBSプラグインを使用してスクリーンショットを取得するアプリケーションを作成しました。ここでそれについて読むことができます:http://tektalkin.blogspot.com/2008/08/screenaudit-for-mac-osx.html

13

私は見たことがありますが、プロフェッショナルとして使用する2つの興味深いオプションは、screencaptureユーティリティとMacFuseのデモです。

screencaptureユーティリティは、マニュアルページによれば10.2以降であり、NSTaskを使用してCocoaアプリケーションにリンクすることができます。

MacFuseのデモは、フォルダが開かれるたびに新しいスクリーンショットを作成するなどの方法で動作しました。スクリプトを実際にそのマシンで実行させることなく、必要なときにイメージにアクセスするためのクイックスクリプトを書くことができます。

しかし、真剣に、アップルには、「素晴らしいCGWindow APIを使用するグラブの息子」というサンプルコードがいくつかあります。

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

1

あなたがC++やPythonでこれを実現しようとしている場合は、次のは役に立つかもしれません。また、これは、プログラマチックメソッドをクロスプラットフォームのポータブルにする場合に役立ちます。 (Windows、Linux、Mac OSX、さらにはそれ以上)

これまでの回答ではQTについて説明しています。

QTがスクリーンショットをキャプチャして保存できるように、別の「競合する」フレームワーク、つまりwxWidgetsも同様です。 wxWidgetsはC++フレームワークですが、wxPythonを介したPythonバインディングも提供します。およそ行くの

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

+1

ありがとうございます!コードは次のとおりです。 wxBitmap GetScreenShot() { wxSize screenSize = wxGetDisplaySize(); wxBitmapビットマップ(screenSize.x、screenSize.y); wxScreenDC dc; wxMemoryDC memDC; memDC.SelectObject(ビットマップ); memDC.Blit(0、0、screenSize.x、screenSize.y、&dc、0、0); memDC.SelectObject(wxNullBitmap); 戻りビットマップ。 } –

9

一つの方法:続きを読むには

は、検索に一致するページのリストから「ページ139の」ためwxScreenDC本を検索し、次のリンクを使用して選択しこれを行うには、NSTaskを 'screencapture'コマンドラインコマンドと組み合わせて使用​​します。例えば

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

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

ザ・あなたが救われるためにそれを告げどこそれは、プロセスをファイルを開き、その後、必要に応じてそれを削除することができます。明らかに停止しますが、うまくいくでしょう。

8

Leopardとの互換性があれば、非常に強力な新しいCGWindow APIがあり、スクリーンショット、ウィンドウショット、またはウィンドウレイヤーのあらゆる範囲の合成を取得できます。

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

+0

優秀、これを指摘してくれてありがとう! –

関連する問題