• ベストアンサー
  • 困ってます

apple script の作成につきましての質問です。

こんにちは、いつもお世話になっております。 現在、game pad companionという、 マウスのボタンを割り当てるシェアソフトを使用しています。 使用環境はPowerBook G4 17/1,5 OS X Tigerです。 マウスは Logicool MX-900 Bluetooth mouseです。 起動後、システム環境設定のパネルを開き GamePadCompanionを一度立ち上げて 「中止」ボタンを押し、その後に「開始」ボタンを 押さなければ、割り当てが適用されません。 そこでその操作をapplescriptにしたものを、 以前この掲示板で作っていただいたのですが、 OSをPantherからTigerに変えたところ動作しなくなってしまいました。 アプリケーション形式のapplescriptをを立ち上げると、 環境設定パネルが開き、GamePadCompanionまでは行くのですが、 それ以降進まなくなってしまいます。 そこで、エラー表記が 「NSReceiverEvaluationScriptError:4」と出ます。 applescriptをどのように訂正したら、 上記のような動作にすることができますでしょうか? 以前、教えていただきましたapplescriptは 「 tell application "System Preferences" activate set current pane to pane "com.carvware.gamecompanionpref" end tell tell application "System Events" tell process "System Preferences" tell window 1 click button "中止" delay 1 --1秒待つ click button "開始" end tell end tell end tell quit of application "System Preferences"」です。 よろしくお願いいたします。 また、applescriptの作成の仕方なのですが やりたい動作を行っているものを、 scriptエディタなどでダイレクトに文字に変えるような方法はありませんでしょうか? 自分なりにヘルプを読みながらやってみたのですが、 できませんでした。。。 質問ばかりですが、よろしくお願いいたします。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数129
  • ありがとう数0

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

  • ベストアンサー
  • 回答No.1
noname#11136
noname#11136

試す環境もなくわかりませんが、Mac OS Xの10.3と10.4でAppleScriptの文法が大きく変わるとも思えません。スクリプトのファイルを新規作成してコピー&ペーストして保存し直すとか、ちょっとだけ別の書き方をすれば動作するようになるのではないかと思います。私の経験では文法的には正しいものでも、tell~end tellなどが入れ子になっていると、Macの環境によっては動作したりしなかったりしたことがあります。例えば、tell process "System Preferences"、tell window 1のところはtell window 1 of process "System Preferences"とかwindow 1はfront windowとかfirst windowとか別の書き方ができるのではないかと思います。 解決できなければ、ここの掲示板よりもAppleScriptの達人がたくさんいるMLや掲示板に質問された方がいい回答が得られると思うので、そちらに質問し直した方がいいと思いますよ。(ここのMacintoshの掲示板はあまりに速く流れすぎて、ただでさえユーザーが少ないのに見てもらえる確率が低いような気がします) > やりたい動作を行っているものをscriptエディタなどでダイレクトに文字に変えるような方法はありませんでしょうか? これはScriptEditorの[●]記録ボタンを押してから、AppleScriptにしたい動作を行って、それからスクリプトエディタに戻って[■]停止ボタンを押せばいいです。ですがこれで上手くいくソフトウェアは少ないので、そのようにしても何も起こらなかったりします。つまり実用になることは期待できず、一般に自分でスクリプトを書くしかありません。

参考URL:
http://homepage1.nifty.com/ton_b/intro/index.html

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • Scriptを教えて下さい。(10.4)

    homeの中にある、ライブラリーの中のPreferencesの中にあるxxxというファイルがあります。 こいつを実行する(開くというんでしょうか。要はダブルクリックしたのと同じ動作)をするコマンドを知りたいんです。 tell application "Finder"   open (home as string) & "Library:Preferences:xxx" end tell これを実行すると下記のエラーが出ました。 構文エラー "end"または"tell"であるべきところですが、unknown tokenが見つかりました。 ちなみに tell application "Finder"   open home end tell これだとhomeはちゃんと開きました。 教えて下さいませ。

    • ベストアンサー
    • Mac
  • AppleScript で・・

    お世話になります。 OS10.6環境で“システム環境設定”の“日付と時刻”を開けるAppleScriptをエディターで作製してみるのですが、エラーが出て(error "System Preferences でエラーが起きました:pane \"com.apple.DateAndTIme\" を pane \"com.apple.DateAndTIme\" に設定できません。" number -10006 from pane "com.apple.DateAndTIme")“日付と時刻”まで行き着きません、他の項目はたどり着くのですが、記述に問題があるかと思いますがさっぱりです、お手数ですがアドバイスいただけると助かります。 ー以下スクリプトー tell application "System Preferences" activate set current pane to pane "com.apple.dateandtime" end tell ー以上ー 例えば "com.apple.dateandtime"のdateandtimeをnetworkにすればネットワークが開くのですが・・

    • ベストアンサー
    • Mac
  • applescript システム環境設定 サウンドについて

    初心者なのですが、Applescriptを用いていろいろ出来たらいいなぁと思って現在特訓しています。 今作ろうと思っているのが、システム環境設定の中のサウンドの環境設定をいじるものです。 具体的に言うと「入力」の中のマイク入力の入力レベルの値をとることです。 ライブラリに音の大きさの調節などのサンプルはありました。 またインターネット上で、サウンドを出力する装置の選択なども見つけました。 http://www.measure-zero.jp/blog/2009/Feb/19 【ボリューム調整】 tell application "System Preferences" activate set current pane to pane "com.apple.preference.sound" end tell tell application "System Events" if UI elements enabled then tell slider 1 of group 1 of window 1 of process "System Preferences" if value is 0.5 then set value to 0.8 else set value to 0.5 end if end tell else tell application "System Preferences" activate set current pane to pane "com.apple.preference.universalaccess" display dialog "UI element scripting is not enabled. Check \"Enable access for assistive devices\"" end tell end if end tell この中の slider 1 of group 1 of window 1 of process "System Preferences" とか、例えば今回でしたらボリュームはどのように取得すればよいのかなどはどのように調べるものなのですか? get UI Element of it とかも上手く使えなくて・・・ あともしご存知でしたら、入力音量や入力レベルの取得方法をお教えいただけますでしょうか? 何も知らなくてすいません・・・

  • AppleScriptやXcodeについて質問できるフォーラムやサイトをご存知ありませんか?

    AppleScriptやXcodeについて質問できるフォーラムやサイトをご存知ありませんか? このサイトでも簡単なScript程度なら回答を得られますでしょうか? ちなみに以下の質問をしたいです tell application "System Events" key code {1, 2, 3} end tell の様な記述をAppleScriptでアプリケーション化してDockに登録したのですがスクリプトが上手く起動する時と起動しない時があります AppleScriptが起動するのが遅くスクリプトが実行できないのかな?と思ってみたりもしてます AppleScriptが起動している時や2回目3回目だと上手く起動します PCを再起動した直後や長時間放置した後などは上手く起動しません よろしくお願いします

    • ベストアンサー
    • Mac
  • vb2010 Sleepを使うと調子が悪くなる

    次のプログラムでButton1を押さないで×を押すと仕事を残して終了した事になり,PCの調子が悪くなります。 なんとか回避できないでしょうか。 Public Class Form1 Private ExitFlag As Boolean = False Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click For I = 1 To 10000 System.Threading.Thread.Sleep(1000) Application.DoEvents() '他のWindows操作を可能にするため If ExitFlag Then Exit For Next ExitFlag = False MsgBox("中止されました") End Sub Private Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click ExitFlag = True End Sub End Class

  • フォーム上の任意のコントロール上でのイベントをまとめてハンドリングする方法

    .NETにおいて、フォーム上に配置されたコントロールで発生したイベントを、各コントロールごとではなくて、まとめてハンドルする方法はないでしょうか。 例えば次のようなフォームがあります。 (Button1, Button2, Button3は、フォームに配置されたボタンとします) Public Class MyForm   Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Click   End Sub End Class ボタンが3つ程度の場合はこれで良いと思うのですが、例えば(極端に言えば)ボタンが100個ある場合、 Handles Button1.Click, Button2.Click, (途中省略.....) Button100.Click と書くしかないのでしょうか。 後で対象コントロールが増えたり減ったりした場合に間違いが起こりそうなので、このような書き方は避けたいです。 フォーム上のどのコントロールでも構わないからとにかくクリックイベントが発生したことを知るための方法はないでしょうか。 例えば次のようなかんじでハンドリングできないでしょうか。 Private Sub All_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles フォーム上の任意のコントロールでのClickイベント End Sub (環境はVB.NET2005です)

  • AppleScriptでアプリケーション再起動

    表題の件について教えてください。 VNCアプリケーションなんですが、動作が不安定で、 一旦遠隔で操作して接続を切ると、 当該アプリケーションを再起動しないと繋がらなくなるものがあります。 そこで、mailのメッセージルールで、 メール受信するとAppleScriptを実行するように設定して、 当該アプリケーションを再起動するようなapplescriptを作ってみましが 上手く動作してくれません。 AppleScriptを実行とすると、「接続が無効です」とのエラーメッセージが出て、 activateのところが水色のハイライトがつきます。 どのように修正したらよいか教えて下さい。 なお、実行するOSはlion10.7.4です。 tell application "アプリケーション名" quit activate end tell

    • ベストアンサー
    • Mac
  • フローティング時計の常時表示(2)

    http://okwave.jp/qa/q7673001.html# で、toast5さんへのお礼入力が何故かうまく行きませんので、新しい質問とします。 テーマは多数あるウィンドウを仮に消去する Show Desktop 1.6.4 の機能で、気に入ったフローティング時計(QuartsClocks) だけは画面から消さない方法です。toast5さんのヒントをもとにしてAppleScript 超初心者の私ですが見よう見まねで作ってみた次のプログラムで苦労したのは finder window をドックに残すところでした。(ひょっとすると動作速度はベストではないかも知れませんが)機能的にはとりあえずうまくいっているようです。 これがベストかご意見を伺いたいのですが。 tell application "System Events" to keystroke "h" using {command down, option down} tell application "Finder" activate set collapsed of every Finder window to true activate end tell tell application "QuartzClocks" activate end tell

    • ベストアンサー
    • Mac
  • AppleScriptでpkgファイルの実行方法

    AppleScriptであるpkgファイルを実行させてインストール画面を表示させたいのですがどのように記述すればよいでしょうか。 tell application "Install" open "file.pkg" end tell ではできませんでした。 宜しくお願い致します。

    • ベストアンサー
    • Mac
  • getOpenFilenameの使い方

    VB2005において下記のようなサンプルプログラムを書いていますが、 'GetOpenFilename'は'System.Windows.Forms.Application'のメンバーではありません。 というエラーメッセージが出ます。 要はファイルを読み込む前にファイル選択用のウィンドウを開きたいのですが、 どのような書き方をしたらいいのでしょうか。 Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim filename As VariantType filename = Application.GetOpenFilename("Text Files (*.txt), *.txt") End Sub End Class