automatorでコマンドキー入力の組み合わせを自動化?

automatorでアプリケーションの

複数回でワンセットのコマンドキー入力を

行なわせるにはどうしたらいいのでしょうか

教えて下さい

例えば,mailですが

キーコマンド入力

command+6

command+A

option+command+L

をして,

自動で行ないたいのです。

投稿日 2011/12/29 07:54

返信
返信: 30

2011/12/30 12:23 お子様ランチ. への返信

アイディアだけで他のもろもろの弊害を無視するなら、他にもフォルダアクションで削除することも可能かもしれないし一番簡単そう。


Command+6ってどんな状況でもちゃんと動くのかな?というのが最初から疑問でした。

質問者さんのアイディア倒れにならないといいのですが、質問者さんがどんな状況でCommand+6を押しているのかずっと知りたかったです。

2011/12/30 12:42 ストップマーク への返信

一応各論併記と言うことで参考意見を書いておくと、QuicKeys X4 を使う、という選択肢もあります。有料ソフトですが、面倒くさいことは不要ですし、キーストローク、メニュ選択、一時停止などのイベントを自由に設定でき、条件分岐も簡単です。


http://startly.com/products/quickeys/mac/4/


僕は重宝しています。

2011/12/30 22:48 ぴっぴ への返信

Automatorの作り方は...

1. Automatorを起動して、右: Choose a type for your document: Applicationを選びChooseをClickする。

2. 左・パネ: Action - Utilities - Run AppleScriptをDouble-Clickする。

3. activate... から最後のend tellをCopyする。

4. 右: on run から end runを消しProgramをPasteする。

5. 右上: ハンマーをClickする。

6. File - Save…を選ぶ。

7. Save As: ApplyRules

Where: Desktop

File Format: Application # 重要

SaveをClickする。


AppleScriptの作り方は...

1. AppleScript Editorを起動する。

2. activate... から end tellをCopyする。

3. ハンマーをClickする。

4. File - Saveを選ぶ。

Save As: ApplyRules

Where: Desktop

File Format: Application # 重要

SaveをClickする。

2011/12/30 23:26 お子様ランチ. への返信

書き忘れました。

上はサービスメニューを選択です。

あとはキーボードショートカットで起動を設定。

実際動くかは未検証。

あと、ちょっとだけ変更も加えておきます。

ユーザがアップロードしたファイル

当たり前ですが、スライダーで再生速度は10倍まで速度を速められます。


このメッセージは次により編集されています:お子様ランチ.

2012/01/01 22:01 お子様ランチ. への返信

Commandだと記憶してくれますね。実行はしているようですがMail.appの終了が遅くなります。

ユーザがアップロードしたファイル


-------------------

同じ方法でSafari 5.1.2のRemove All Website DataをAutomatorで作ったのですが、Safariを起動した場合と起動したままで実行を試したり、条件が違うPrivate Browsingなどで実行するとThe action "Watch Me Do" encountered an error.になります。Playback Speedを8位だとやや安定するのですが...


AppleScriptのほうが安定しているのですが、Preferencesを開き、Remove All Website DataをClickして、Remove NowをClick、PreferencesをCloseする方法が分かりません。


SafariのHistoryとCacheを消去するAppleScriptは非常に安定して確実に実行してくれます。Disable JavaScriptとUser AgentをInternet Explorer 7.0もAppleScriptで問題ないです。Shell ScriptでFlash Cookieを全てOFFにするのも便利でFlash Player.pluginとflashplayer.xptLastのみで動きます。

2012/01/06 09:53 ストップマーク への返信

SafariのRemove All Website DataをAppleScriptで作りたいのですが、Preferencesを開き、Privacy tabをClickする処まで出来ましたがRemove All Website Data…をClick出来ません。何方かお教え願えるとありがたいのですが…


activate application "Safari"

tell application "System Events"

tell process "Safari"

click menu item "Preferences…" of menu 1 of menu bar item "Safari" of menu bar 1

click button "Privacy" of tool bar 1 of window 1 -- ここまではOK

click button "Remove All Website Data…" -- Clickできない

click button "Remove Now"

close "Preferebces"

end tell

end tell


# AutomatorでRemove All Website Dataを作りましたがPrivate Browsing, Safariを起動して、Safariを起動中などやApple SiteでiPhoneやiPadなどの宣伝が自動実行されるとErrorになってしまうので使い物になりません。


Safari - Develop - Show Web Inspector: ResourcesのWeb Storageを綺麗に消すことが出来る便利なHTMLを作りました。


launchd.plistでFlash Cookiesを消去するというアイデアを見つけ、早速、$HOME/Library/Safari/DatabasesとLocalStoargeの中身を消すlaunchd.plistを作りLaunchAgentsに入れて運用を決める為の実験中です。DatabasesのほうはSafari: Preferences - AdvancedのDatabase storage: Noneなので書き込みはしませんが…


勿論、Flash Cookiesの監視をするlaunchd.plistも作りました。Flash Playerの設定は全てOFFですので$HOME/Library/Preferences/Macromedia/Flash Player/#SharedObjects/8x/には何も書き込みをされませんが、極まれに書き込む輩がいるので監視をする意味で実行します。設定済みのsettings.solと取り替え、不要なPreferencePane, BOM, PLIST, LOGを消去するShell Scriptの実行でFlash Cookiesの設定を処理してしまいます。


Console.logを見ると10秒毎に実行されるのは五月蝿いですが健気なとこを汲んで良しとします。

1/7/12 12:50:43.728 AM com.apple.launchd.peruser.501: (org.localstorage) Throttling respawn: Will start in 10 seconds

1/7/12 12:50:43.728 AM com.apple.launchd.peruser.501: (org.flash.Cookies) Throttling respawn: Will start in 10 seconds

# SafariでSiteを覗かなければ動かないようです。


User Agentに関する面白いSiteを見つけました。HTMLでUser AgentをCheckするのも作り、Internet Explorer 7.0, Firfox 4.0.1, Safari 5.0.6に偽装するAppleScriptを作りました。Defaultに戻すが違うTABを使うかSafariを再起動しない限りBrowserの偽装を続けられTABごとに偽装可能です。

2012/01/06 16:46 ぴっぴ への返信

> Remove All Website Data…をClick出来ません。


https://discussionsjapan.apple.com/message/100639879#100639879

↑この方法でできると思います。(Automator で記録 → AppleScript を実行にドラッグ → __省略__)


ということで、こんな感じでどうでしょうか? Snow Leopard で確認。Lion 未確認です。


set t to 0.5

try

tell application "Safari" to activate

tell application "System Events"

tell process "Safari"

click menu item "Preferences…" of menu 1 of menu bar item "Safari" of menu bar 1

delay t

tell application "Safari" to set win_id to id of window 1

tell window 1

click button "Privacy" of tool bar 1

delay t

try

tell group 1 of UI element 2 of row 1 of table 1 of UI element 1 of scroll area 1 of group 1 of group 1

click button "Remove All Website Data…"

end tell

delay t

click button "Remove Now" of sheet 1

delay t

end try

end tell

end tell

end tell

tell application "Safari" to close (windows whose id is win_id)

on error err_msg

return err_msg

end try

2012/01/06 19:18 ぴっぴ への返信

# AutomatorでRemove All Website Dataを作りましたがPrivate Browsing, Safariを起動して、Safariを起動中などやApple SiteでiPhoneやiPadなどの宣伝が自動実行されるとErrorになってしまうので使い物になりません。

Lionではダメでしょうが、SnowLeopradですとプライベートブラウズ中でもAutomatorで動きました。

ちなみにAutomatorの自動記録の正体は自動記録のアクションをコピーするとアップルスクリプトが現れたりしてましたからアップルスクリプトだと思います。


ユーザがアップロードしたファイル

Safariを選択

ユーザがアップロードしたファイル

環境設定を呼び出し

ユーザがアップロードしたファイル

一般ツールボタンを初期値として設定。

ユーザがアップロードしたファイル

プライバシーを選択

ユーザがアップロードしたファイル

終わり。


とりあえず、動かせないか、動かせるというと、なんとかできたということだけです。



私のAutomatorの使い方は、とりあえず不便な時、チョコチョコと作って使い終わったらゴミ箱へ捨てるが基本です。


あとは、Macから離れているとき1時間以上かかる処理を連続させるのを毎日行わせているぐらいです。

2012/01/06 19:56 お子様ランチ. への返信

Lionではダメでしょうが、SnowLeopradですとプライベートブラウズ中でもAutomatorで動きました。

私もSnow Leopardで同じAutomatorを作って試しましたがSnow Leopardだとスムーズで失敗は無かったです。


Lionだと少し環境が違うとErrorになる確率が高いです。SafariのHome Pageがwww.apple.com/startpage/なのでAutomatorで何回か実験を繰り返すとJavaScriptが動きIPhoneなどの宣伝が始まりErrorになってしまいます。


AppleScriptでMenuや設定が弄れるのは便利です。Shell Scriptだとdefultsで弄るしかなく限界があります。出来るだけShell Scriptを使い、AppleScriptでしか出来ない事はAppleScriptを利用したい。でもAppleScriptは詳しくないのでError処理が行えないのです。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

automatorでコマンドキー入力の組み合わせを自動化?

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。