• ベストアンサー
  • すぐに回答を!

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

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

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

  • 回答数6
  • 閲覧数1120
  • ありがとう数4

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

  • ベストアンサー
  • 回答No.5

Automatorでもできましたよ。  アプリケーションを終了  アプリケーションを起動 だけのフロー?をアプリケーションとして適当な名前を付けて保存。 AppleScriptで、今作ったアプリを起動するスクリプトを作って保存。 メールのルールにこのスクリプトを指定。

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

質問者からのお礼

あーなるほど!組み合わせれば良いのですね! 自分は発想が固くていかんなーと思い知らされました。 今回はこの方法を選択しようと思います。 どうも有難うございます。

関連するQ&A

  • アップルスクリプトで、新しいウインドウを開きたい。

    アップルスクリプトで、IEを全面に持ってくるところ※までは出来たのですが、IEのファイルメニューから、「新しいウインドウを開く」を実行させたいときには、どの様に記述すればよろしいか教えてください。 ※ tell application "Internet Explorer" Activate end tell 最終目的は、ファイルメーカープロのスクリプトで、「urlを開く」を利用したいのですが、一度に、複数のページを表示させたいと考えています。

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

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

    • ベストアンサー
    • Mac
  • applescriptでウインドウを閉じたい

    職場のローカルネットワーク内にあるmacのあるフォルダに接続するために以下のように書きました。 接続はうまくいきます。ただし同時にウインドウも開きます。 そのウインドウは不要であり、他のスタッフの目にもつくので閉じたいのですがうまくいきません。(とくにエラーも出ず、そのままウインドウが表示されたままになります) どうすればよろしいでしょうか。 tell application "Finder" activate open location "afp://***.***.***.***/Foleder/test.csv" close Finder window 1 end tell macOS10.8 Applescriptエディタ2.4.3 を使用しています

    • 締切済み
    • Mac

その他の回答 (5)

  • 回答No.6

念のためお断りしておきますが 私はki073さんの回答には付いていけないAutomator/AS素人です(;_;) MailのルールでASが起動出来るのも初めて知って、役立ちそうなので 参加しました。勉強させていただきます。

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

  • 回答No.4
  • ki073
  • ベストアンサー率77% (491/634)

No1, 3です。 Macを外部からコントロールする方法を書いておきます。標準で用意されていてWindowsからも可能となるものは 1) sshでログインしてshellを使う方法(No.3に記載した方法) 2) VNC標準でインストールされています。システム環境設定」「共有」「リモートログイン」で「コンピュータ設定」ボタンを押してVNC設定が可能になります。普通のVNCですのでWindows側でクライアントを用意すれば使えます。 3) ファイル共有 smbの設定をonにするとWindowsからも使えます。 一般的にはこのあたりです。 それと shellからAppleScriptを使う方法はNo.3に書きましたが、逆にAppleScriptからshellを使う方法として do shell script "open '/Applications/Preview.app'" があります。これでPreviewが起動します。シングルクォーテーションとダブルシングルクォーテーションを使い分けていますので注意してください。 AppleScript側で同じ様に書いておけば、No.3で書いたsshを使わなくてもAppleScriptから起動できます。起動だけならこの方が簡単です。

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

  • 回答No.3
  • ki073
  • ベストアンサー率77% (491/634)

一つの方法として、 相手側のMacを「システム環境設定」「共有」の「リモートログイン」を有効にしておきます。 そうするとsshで接続可能になります。 Windowsにはsshが使えるTeraterm http://sourceforge.jp/projects/ttssh2/ をインストールしておき、 (Macの場合だと標準で入っているターミナルでssh ユーザid@IPアドレスと入力) Teratermにログイン先を設定します。 (Macの「リモートログイン」を有効にしたときにssh ユーザid@IPアドレスの入れ方が画面表示されます) パスワードを聞いてきますので、それを入力するコマンド入力ができるようになります。 AppleScriptで終了させられるようですので、コマンドとして osascript -e 'tell application "SplashtopStreamer" to quit' これでAppleScriptをコマンドラインから実行できます。 つぎに open "/Applications/SplashtopStreamer.app" で立ち上がるはずです。SplashtopStreamerがアプリケーションフォルダにあることが前提ですが、アプリケーションのフルパスを入れば起動します。AppleScriptに対応している必要はありません。 相手につながればUNIXですので、基本的なコマンドは使えます。

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

質問者からのお礼

ご丁寧な回答どうも有難うございます。 こういうスクリプトとかコマンドとか込み入ったことは得意ではないので、 自分の能力不足でご説明についていけていないところがあるんですが、 自分の勉強のためになりそうなことなので、明日teratermを入れるところからちょっとトライしてみようと思います。 sshは別なことにも使えそうなので。 ただこの方法だと特定のwin機からしか再起動をかけられないという事になりそうですね。 実際家庭内LANでの運用を考えていたのでそれでも問題ないのですが、 ちょっと出先から、といったようなことも考えられなくもないので… 別のVNCを使えばいいのですが、Lionにしてから、なぜかwin→MacでのVNC接続が不安定になった気がします。 teamviewerは操作ラグが酷く切断されまくり、RealVNCはログイン画面が表示されるのみで先に進まない、、、等 splashtop~は相談内容の通り、何故か再接続出来ない問題はあるものの、繋がってしまえば安定するので消去法での選択です。 macの画面共有のwin版があるといいんですけどね。 私の家庭内の環境のせいかもしれませんが。 どうもありがとうございました。

  • 回答No.2

tell application "アプリケーション名" quit delay 5 launch end tell としたらどうですか。終了後5秒待ってから起動という意味です。

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

質問者からのお礼

No1の方へのお礼でも書いたのですが、そもそもAppleScriptへの対応の問題があったようです。 一応お教えいただいたスクリプトを入力して実行してみましたが、 やはりquitまでは実行しますが、立ち上がってくれませんでした。 どうもありがとうございました。

  • 回答No.1
  • ki073
  • ベストアンサー率77% (491/634)

状況がつかめませんが、質問者さんが、相手側のMacをVNCで操作していて不安定ということでしょうか。 「システム環境設定」共有の「画面共有」でVNCを設定して使っているのでしょうか。それとも他のVNCサーバーを使っているのでしょうか? まずはVNCの不安定から解消するほうが良いように思います。 さて、AppleScriptの方ですが、アプリケーションを終了、再起動させるスクリプトですよね。 まず、そのアプリケーションはAppleScriptに対応しているのでしょうか? AppleScriptエディタのメニュー「用語説明を開く」に現れ、quitが使えることが確認できますか? 用語説明に現れるのであれば、quitやactivateが最低でも使える場合が多いのですが、まったく現れないのなら別の方法 System Eventsを使う必要があります。アプリケーション自体がフリーズしたような状態(メニューから終了できない)場合は、また別の方法をとる必要があります。

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

質問者からのお礼

説明不足ですみません。 おっしゃるとおり相手側MacにVNCサーバソフトが入っていて、 それをwin7のクライアントソフトで操作したいのですが、 接続をOFFにするたびに何故か繋がらなくなります。 ちなみにSplashtopStreamerというアプリケーションです。 これらの不安定解消のために色々と調べてみたのですが、 有効な解決策は見つけられず、どっちのアプリ側の問題なのかネットワークの問題なのか、 問題を切り分けることも出来ず、とりあえずサーバ側アプリを再起動すると 接続できることがわかったので、上記のような対策を取ることにしたわけです。 そんなに使用頻度が高いわけでもなかったので、妥協策を取りました。 Applescriptは完全に初心者ですので、色々と知りませんでした。 そもそもAppleScriptに対応しているかという問題があるんですね。 そしてご指摘の通り[用語説明を開く]には表示されず、 またブラウズから当該アプリを見てもグレーで選択できないようです。 ということはAppleScriptに非対応ということなんですね。 ただ、quitまでで試すと、アプリは終了してくれます。 SystemEventsというのはまた全然考えてなかった方法ですので、ちょっと調べてみます。 それとAutomatorも使ってみたのですが、これは上手く動かせませんでした。

関連するQ&A

  • 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エディタなどでダイレクトに文字に変えるような方法はありませんでしょうか? 自分なりにヘルプを読みながらやってみたのですが、 できませんでした。。。 質問ばかりですが、よろしくお願いいたします。

    • ベストアンサー
    • Mac
  • Applescript-iTermを起動しコマンドさせる

    よろしくお願い致します。 現在、簡単なプログラムを作成したくて困っています。 内容は、「iTermを起動し、コマンドを打ち込む」というものです。 Terminalならば、 tell application "Terminal" activate do script with command "コマンド記述" end tell で正常に動作するのですが、iTermだとうまく動作しません。 そして、そもそもなぜTerminalではなくiTermを使用しているかと 言えば、Terminalを起動すると実寸で1cm×1cmのウィンドウが出て 拡大も出来ないし、ウィンドウ設定で何度設定しても、ウィンドウサイズ がその小さいサイズに戻されてしまうんです。 ちなみに、カラーやその他の項目はデフォルト設定を押せば、 そのまま記憶され、ちゃんとデフォルトになります。 以上のような問題のため、どうしてもiTermを使用して、 コマンドを実行させなければならない状態でして・・・。 tell application "iTerm" activate ?????????????????? "コマンド記述" end tell iTermを起動させコマンドを実行させるには、どうしたらよいでしょか? (????な部分にどのように書けばいいのでしょうか?) 皆様、御教授よろしくお願い致します。

  • AppleScriptで「選択」して「選択したものをリネーム」

    AppleScriptで、あるフォルダ内のファイルを解凍してFTPでサーバーにアップするという処理をさせようとしています。 tell application "Finder" activate select folder "ChangeData" of startup disk open selection select document file "DATA20091014.lzh" of folder "CangeData" of startup disk end tell ここまでは「コンパイル」を実行しても正しくプログラムに出来たのですが、ご覧の通り、希望の動作をさせるには記述が足りません。 文法がめちゃくちゃなのを承知で敢えて書きますと、 tell application "Finder" activate select folder "CaspaData" of startup disk select all contents of selection ←選択したフォフダの中身を全て選択する(記述法不明) rename selection to "today.lzh" ←選択したファイルの名前を「today.lzh」に書き替える(記述法不明) select all contents of selection ←選択したフォフダの中身を全て選択する open selection ←ここでファイルが解凍されます select document file "today.lzh" of folder "CaspaData" of startup disk delete selection ←選択したファイルを捨てる select all contents of selection ←選択したフォフダの中身を全て選択する(記述法不明) rename selection to "Data.csv" ←選択したファイルの名前を「Data.csv」に書き替える(記述法不明) end tell "CaspaData"というフォルダの中にはメールソフトが自動的に保存したファイル1個だけが入っているので、こうすることによって、 1. フォルダ内のファイルが何と言う名前でも"today.lzh"に書き替える 2. today.lzhを解凍する 3. today.lzhをゴミ箱に捨てる というプロセスを自動処理し、フォルダ内にはメールソフトが保存したアーカイブの解凍後のファイルだけが残るようにしたいという訳です。 最終的には、このリネームしたCSVをNetFinderというFTPソフト(スクリプト対応ソフトです)で希望の場所にアップロードしたい訳なのですが…。 http://force4u.cocolog-nifty.com/skywalker/2008/01/applescript_ae09.html こんなところを見ると、そこに存在するファイルの名前が何であっても目的の名前に変えることの出来るスクリプトも組めるんだなということは解るんですが、私には知識がなくて内容が理解できないので、スマートではないことは承知の上で「1つしかファイルがないのに"全て選択"で選択してリネーム」という手段をとろうとしています。 ここで、上に「記述法不明」と書いた部分は、Applescriptではどう書けばいいのでしょうか?

    • ベストアンサー
    • Mac
  • 再起動の仕組み

    素朴なことですが自作勉強中なので教えてください。 再起動の命令は、どこに保存されて何が実行しているのですか? また、ネット経由で遠隔操作で起動させる(やはりルータか何かで常時接続してるとして)場合も、どういう仕組みですか?難しいことは分かりませんが、ここよめURLでもかまいません。お願いします。 ではWindowsのupdateが完了したようなので再起動します。

  • フローティング時計の常時表示(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
  • WindowsOSの再起動の検知方法

    お世話になります。 WindowsOSでの再起動の検知方法を教えていただきたいです。 OSはWindows Server 2003です。 いろいろ調べてみましたが、単純にはできないことは分かりました。 やりたいことは以下になります。アプリは[.Net C#]で作成しています。 アプリケーション動作中に、[スタート]から[ログオフ]、[再起動]、[シャットダウン]が実行された場合に、アプリケーションを正常終了させたのちに、コマンドを発行し、[ログオフ]、[再起動]、[シャットダウン]を実行させたい。 [SystemEvents.SessionEnding ]イベントのパラメーターには、 [シャットダウン]と[ログオフ]しかなく、[シャットダウン]、[再起動]、[ログオフ]の3分岐を実装することはできませんでした。 今の実装だと、[スタート]から[再起動]を実行すると、PCはシャットダウンします。 [再起動]が実行された場合は、再起動をさせたいのです。 何かいい方法があれば、教えてください。 よろしくお願いします。

  • パソコンの遠隔操作するためのVNCについてお尋ねします。遠隔操作の内容

    パソコンの遠隔操作するためのVNCについてお尋ねします。遠隔操作の内容が分からないのですが、手元にあるPCを利用しながら遠方のマシンに対してコマンドを送って仕事をさせるということでしょうか。 その場合、コマンドによって生じるメモリの消費とか発生するファイルはすべて遠隔地のマシンが負担するということでしょうか。そうしますと、telnet, sshと同じで遠隔地のマシンはサーバということになるのでしょうか。 例えば、コンパイラがインストールされているマシンが遠方にあってファイル共有でファイルを転送し、VNCによって接続してコンパイル、実行するというような計算サーバみたいなことをVNCでもできるのでしょうか。まるでtelnet, ssh, ftpですね。しかし、遠方の出力画面も手元のPCで見ることができるということだとすれば、unixで言うところのXを飛ばすということと同じでしょうか。 また、そのサービスを利用する場合の環境設定などはどのようになるのでしょうか。サーバ側としてはどのようなユーザ管理になるのでしょうか。 VNCを誤解しているかもしれないので解説をお願いしたいのですが。wikiで調べたのですが、telnet, sshとの区別が分かりませんでした。ただ、telnet, VNCは平文で操作するのでセキュリティには気をつける必要があるとのことでした。 よろしくお願いします。

  • javaアプリケーションの動作が急に重くなりました

    javaであるゲームを作っているのですが、昨日までは問題なかったのに 今日アプリケーションを実行してみると動作がとても重くなっていました。 ソースコードは何も変更していません。再起動、デフラグも行ってみましたが効果ありませんでした。 以下詳しい症状です。 ・自キャラ、敵キャラの動く速度が1/2程度で、  スローモーションのような状態になる(マリオ系のゲームです) ・アイテムを取ったりして音を再生すると一時的に改善する(BGMは無) ・しばらく音を鳴らさないと、また突然重くなる プログラムは書き換えておらず、また参考にしていたサンプルゲームを落として実行してみても動作が重いので(昨日までは問題なし)問題はPCの方にあると思います。 私が思いつくのは、システムなどのアップデートが行われて影響が出た、ということくらいです。 この症状に心当たりのある方は何か解決策を教えていただきたいです。 以下スペックです vista Home Premium Service Pack 1 (32bit) Intel Core 2 T5500 1.66GHz メモリ 2GB

    • ベストアンサー
    • Java
  • ACアダプターを接続すると、再起動を繰り返します

    ACアダプターを接続すると、再起動を繰り返します。(Dynabook TX/65F) Dynabook TX/65F を使用しています。 動作が遅くなったので、リカバリを実行した時点から途中で再起動をしてリカバリが出来なくなりました。 バッテリーをフル充電して何とかリカバリは成功したのですが、ACアダプターを接続して起動すると再起動を繰り返します。 ACアダプタをはずしてバッテリで起動すると再起動の現象は出ません。 セーフティモードでもACアダプターを接続しても現象は出ません。 ACアダプターを交換してもダメでした。 メーカーに問い合わせたところメイン基盤電源関係の故障だと言われ、5万ぐらい修理費がかかると言われました。 バッテリー使用だと問題無いので、そこまで費用をかけたくないありません、良い方法はありませんでしょうか? どなたかサポートできる方、お願い致します

  • シャットダウン実行後なぜか再起動する。

    シャットダウン実行後なぜか再起動する。 先日、Windows OS搭載のHDDが飛んでしまい、リカバリーをしてます。 一通り、Xpを初期設定をし、ネットワーク接続も復旧したのですが、大量のWindowsUpdateの更新等で再起動を繰り返すうちに、ローカルエリアネットワーク接続が接続できなくなってHPが回覧できなくなり、シャットダウンを実行しても10分程度位で電源設定もしていないのに、勝手に起動されてしまうという変な現象が起きるようになってしまいました。でもなぜかWindows Updateだけは今もできるような状況です。 もしかすると、これはウィルスに感染してしまったでしょうか? いつもはフリーソフトを入れてチェックしてたのですが、今回は準備する前ということで、復旧手順も おかしかったなと反省してるのですが、システムからデバイスマネージャを見る限りは動作がおかしいデバイスはないようです。 類似の現象についてご存知の方、リカバリー方法についてご教授頂けないでしょうか? 宜しくお願いします。