• ベストアンサー

Applescriptで一番上のウィンドウを自動で撮影する方法を探して

Applescriptで一番上のウィンドウを自動で撮影する方法を探しています。 do shell script "screencapture -iW" とすれば、惜しい所までいくのですが、最後カメラマークになってマウスのボタンを押さないと撮影できません。 ・自動で撮影するコマンド もしくは ・マウスのボタンを押すスクリプト、または一番上のウィンドウを指定するスクリプト を教えてもらえないでしょうか。 よろしくお願い致します。

  • Mac
  • 回答数2
  • ありがとう数8

質問者が選んだベストアンサー

  • ベストアンサー
  • coriaka
  • ベストアンサー率72% (126/175)
回答No.2

AppleScriptでマウスクリックを代行させる方法がありましたので参考URLに載せておきます。 あとは、System Eventsを使ったUI Scriptingを使えばキー入力できるので、 Command+Shift+4キーを押した後のスペースキーでカメラマークに変え、 撮りたいウインドウをマウスクリックさせればデスクトップにスクリーンショットファイルができます。 do shell script "screencapture"を使うと入力待ちになって止まってしまい、 次のマウスクリックさせるスクリプトに届かないので注意してください。 具体的にはこう書くと座標{100, 40}にあるウインドウのスクリーンショットができました。 -- tell application "System Events" key code 21 using {command down, shift down} delay 0.5 key code 49 end tell delay 0.5 my mouseClick({100, 40}, "left", 1, "", 0.1) -- ユーザー定義関数のmouseClickハンドラの書き方は参考URLのページを参照してください。 指定したウインドウを最前面にする方法や座標を求める方法は、 タブがあるウインドウを持つなど、アプリケーションによって書き方が違いますので、 使いたいアプリケーションのヘルプなどを参照してください。 最前面のウインドウというのは意外とコンピュータ側からは定義しずらいものです。 すべてのアプリを終了しウインドウをすべて閉じた状態で、1つもウインドウが存在しないように見えても、 ウインドウを持たない隠れたアプリケーションがあったり、一定時間ごとに最前面で動くものがあったりします。 デスクトップやDock、スクリーンコーナーを感知する見えない領域がウインドウだったりします。 いくつかスクリーンショットを補助するアプリケーションを試用したことがありましたが、 固定された領域を撮る機能はあっても、最前面ウインドウを感知して自動撮影するものはありませんでした。 結局、最前面ウインドウを指定するのは人手に頼る方法が確実なのでしょう。

参考URL:
http://memogaki.soudesune.net/index.html
tempesttem
質問者

お礼

お答え頂きありがとうございます。明日、教えていただいた方法でやってみます。

tempesttem
質問者

補足

ユーザー定義関数、mouseClickハンドラとして、 http://memogaki.soudesune.net/index.htmlを参考に on mouseClick(thePosition, theButton, theClickCount, theModifierKeys, thePressSec) ~ end mouseClick をスクリプトに追加して行った所、期待したウィンドウショットを撮影することができました。 ありがとうございました。

その他の回答 (1)

  • capy2009
  • ベストアンサー率72% (337/465)
回答No.1

それはできません。 全体のスクリーンショットを撮って(これは自動的にできます)そこから目的のウィンドウ部分だけ切り出すことになります。画像の切り取りには iMagine Photo が便利です。

tempesttem
質問者

お礼

お答えいただきありがとうございました。

関連するQ&A

  • chmodをapplescriptで実行したい。

    はじめまして AppleScript初心者です。 OSXServer10.4.8でファイル共有しています。 フォルダのアクセス権を定期的にchownコマンドで変更したいと思いますが、うまくいきません。 Applescriptでchmodコマンドを実行するものを用意しましたが、スクリプトエディタでスクリプトファイルを実行するとchmodでアクセス権が変更されるのですが、このスクリプトをcrontabに登録して特定の時間に実行するように設定すると機能しません。 AppleScript//////////////////// set cmdchown to "/usr/sbin/chown -R test /test1" do shell script cmdchown password "password" with administrator privileges set cmdchmod to "/bin/chmod -R 755 /test1" do shell script cmdchmod password "password" with administrator privileges ////////////////////////// 定期的にオーナーとアクセス権を変更するにはどうすれば良いですか? よろしくお願いします。

  • AppleScriptでKeynoteのイメージ保存を自動化したい

    Keynoteのスライド画像をJPEG画像で書き出す動作を,AppleScriptで自動化したいと考えています.しかし,スクリプトエディタでKeynoteのAppleScript用語辞典をみてみましたが,それらしいコマンドを見つける事ができませんでした. 上記のような動作をAppleScriptで自動化することは可能でしょうか? よろしくお願いいたします

    • ベストアンサー
    • Mac
  • AppleScript(or Perl)でURLエンコードするには?

    AppleScriptでURLエンコードするにはどのようにすれば良いのでしょう? Perlを使えばできそうなのですがうまくいきません。例えば”あ”をエンコードしようとして、do shell scriptコマンドから echo 'あ' | perl -pe '~s/([^?w ])/"%".unpack("H2", $1)/eg;' としても"%a4%a2"が正しいのですが、"%e3%81%82%0a"が返ってきます。 暗ーいトンネルに入ったような状態です。どなたかお力をお借りできないでしょうか?

  • Applescript での文字表示

    xcodeを使って、mac と walkmanの音楽を同期するアプリ作ろうと思っています。 プログラムは主にシェルスクリプト(bash)で書かれており、 同期自体は rsync を使っています。 applescriptでは上記シェルスクリプトを「do shell script 」で走らせ、 その標準出力を NSTextView に表示させています。 set text to (do shell script "rsync_script.sh") textView's setString_(text) ただし、この方法だとrsyncが終わった時点でしか、標準出力を表示出来ません。 どうにか、シェルスクリプト実行中に標準出力を表示させていく方法はありませんでしょうか?? また、NSTextViewでは、書き込む度に前の文字が上書きされてしまいますが、 消さずに追記していく方法はありますでしょうか? よろしくお願いします。 私の環境はこちらです。 mac os 10.6 xcode 3.26

    • ベストアンサー
    • Mac
  • XcodeでApplescript

    今年からプログラムを勉強しようと思い、まずはApplescriptで 何かできないかなと考えテキストを購入しました。 環境はOS10.3.9 , Xcode1.5です。 そこでテキスト通りに新規プロジェクトからAppleScript Applicationを選択 次へ 新規AppleScript Applicationから任意のプロジェクト名(ディレクトリは自動で入力)  完了 新規プロジェクトが作成される。 ビルドと実行ボタンを押すとビルド~アプリケーションを実行して のっぺらぼうのウィンドウを表示すると書いてありますが 実際「ビルドと実行」ボタンを押すとFaild 1となり「プロジェクト名. applescript」のエラーに1が付きアプリケーションを実行してくれません。 (プロジェクト名.applescript」の右端のチェックを外すと実行されます) 何がおかしいのでしょうか。初っぱなからつまずいているので宜しくお願い します。

    • ベストアンサー
    • Mac
  • AppleScriptでUnixコマンドの不明点

    いつもお世話になってます スクリーンショットを撮るのにシェルスクリプトを使用しています 以下のスクリプトです #!/bin/bash screencapture -iWS 0.png sips -s format jpeg 0.png --out ~/Desktop/SS`date +%H%M%S`.jpeg rm 0.png これをAppleScriptで利用したく思いスクリプトエディタで記述しました do shell script "screencapture -iWS 0.png; sips -s format jpeg 0.png --out ~/Desktop/SS`date +%H%M%S`.jpeg; rm 0.png" これでスクリーンショットを撮る分には問題ありませんが AppleScript実行後スクリンショット確定前にescでキャンセルすると 下記AppleScriptエラーとなってしまいます Warning: 0.png not a valid file - skipping Error 4: no file was specified Try 'sips --help' for help using this tool 想像するにAppleScriptの改行が解らないので[;]の部分が間違ってるのかな?とそうぞうしているのですが スクリプト初心者のため何が悪いのか解りません シェルスクリプトのままで良いじゃないと思われるかも知れませんが、XcodeでGUI化したいのでAppleScriptにと考えています 原因を解決法をご教授よろしくお願いします

    • ベストアンサー
    • Mac
  • AppleScriptでPS書き出し

    お世話になります 早速本題なのですが MacOS9.2.2のQuarkXpress3.3の スクリプティングに関する質問です QuarkXpress3.3の複数のファイルを AppleScriptで自動で指定したフォルダの中に 連番あるいは同じファイル名&".PS"の名前で PSデータを書き出したいのですが Quarkの『print PostScript file ~~』を使っても フォルダを指定して書き出す事ができず しかも起動ディスクの直下に書き出されたPSファイルは スクリプトからではアクセス権がありません と言われて動かす事ができません 普通にプリントアウトするためのスクリプトで PSファイルをプリントアウトするようにしても 同じ名前でどんどん上書きしていくだけになってしまう上 プリントアウトの次にPSファイルのファイル名を 付け替えるようにスクリプトを書き加えても PSファイルができる前にその処理をしようとする為に エラーになってこれもうまくいきません どうすれば指定したフォルダに PSデータを連続で書き出す事ができるでしょうか? 時代をさかのぼったような質問で申し訳ありません

    • 締切済み
    • Mac
  • windowsの設定変更の自動化って可能ですか?

    Windows10の設定(システム・デバイス・電話・...)はGUIのマウス操作で扱うのが普通だとは思いますが、 これらをコマンドライン等から操作することって可能ですか? 頻繁に設定を変える項目があって毎回設定画面開いてマウスカチカチで変更するのが面倒に感じるので、スクリプトでも書いて自動化できれば便利です。 何か方法はありますか?(power automate desktop?とかで実現可能ならそれで大丈夫です。)

  • 小さなウインドウ開いて自動閉じることできますか?

    200 * 200のウインドウ開いて、 10秒後に自動で閉じるようなスクリプトは可能でしょうか? 以下ではオブジェクトを指定してくださいエラーになりました。どぼじで?(TT) ----------------------------------- <html><head> <script language="JavaScript1.2"><!-- function resize(w1) { w1.resizeTo(200,200); w1.status=no } //--></script> </head> <body onLoad="setTiw1out('window.close()',10000); resize(window);"> 小さなウィンドウ 10秒後に自動で閉じます。 </body></html> -------------------------------------

  • USB Web カメラのボタンでの写真撮影について

    USB Web カメラのボタンでの写真撮影について質問です。 Windows XPでソフトはLiveCapture2、USB Web PC Cameraで撮影をしようとしました。 赤丸で記した所のスナップショットボタンをマウスでクリックすれば、スナップショットを撮影して、選択したフォルダに保存でき、問題ありません。 で、USB Web PC Camera本体についている撮影ボタンを押すと、右のウィンドウのようなUSB PC Cameraというウィンドウが開き、そこに静止画が残ります。 できれば、USB Web PC Cameraについている撮影ボタンを押すとスナップショットを撮影して選択したフォルダに保存してほしいのですが、これは一体どこで設定するのでしょうか? (USB Web PC Camera本体についている撮影ボタンと、赤丸で記した所のスナップショットボタンを関連づけることはできないのでしょうか?)