

Automatorを用いて、スクリーンセーバを起動するアプリケーションを作成しています。  
現在設定されているスクリーンセーバに起動して欲しいので、

[code]

    tell application "System Events"
        start current screen saver
    end tell
    
[/code]

というコードを書きました。  
このコードは[このサイト](https://apple.stackexchange.com/questions/57914/activating-
screen-saver-from-applescript-in-mountain-
lion)を参考にしたのですが、私の環境（M2、Ventura）ではうまく動作しませんでした。

・設定Appで設定されているスクリーンセーバを起動するApple Scriptはどのように書けば良いでしょうか？  
・`start screen saver "Shell"`のように`start screen
saver`の後ろに続く文字列に何を指定することができるのか、知る術はありますか？


CC BY-SA 4.0
2023-07-13T13:29:20.107
95593
2023-07-14T03:16:47.030
59099
question
applescript
AppleScriptによるスクリーンセーバの起動

[code]

    use AppleScript version "2.4" -- Yosemite (10.10) or later
    use scripting additions
    
    tell application "System Events"
        start current screen saver
    end tell
    
[/code]

とするとどうなるでしょうか？  
このスクリプトで、M1, Venturaで動くことを確認しました。

あと、気になった点は初めてこのスクリプトを動かしたときにシステムイベントの操作を許可するか？の様なダイアローグがでたので、これを許可していないと動かないかも知れません。  
確認方法は`システム環境設定`->`プライバシーとセキュリティ`->`オートメーション`に`Automator`が追加されているか確認して下さい。

`start screen saver`の後ろに続く文字列は  
システム環境設定->スクリーンセーバー で一覧できるスクリーンセーバーのタイトルが指定出来るようですが、スクリプト等で取得できるか？は解りません

参考までに、Apple Scriptを編集、デバッグするには、  
[Script Debugger](https://latenightsw.com/)というアプリが高機能で便利です。


CC BY-SA 4.0
2023-07-13T21:02:16.090
95599
2023-07-14T02:40:26.677
2023-07-14T02:40:26.677
14745
14745
95593
answer


解決できましたので、自己回答という形で知見を残しておきます。

結論：ショートカットAppにより、ワンクリック、あるいはあらかじめ設定したショートカットキーを用いて、現在設定されているスクリーンセーバを起動することができました。

Automatorがダメそうだったので、ショートカットAppを覗いてみたのですが「スクリーンセーバを開始」というアクションが存在することが分かりました。このアクションを内蔵するショートカットを作成し、これをAppとしてDockに追加するか、ショートカットキーで実行されるように設定することで、期待の動作を得ることができました。

単にスクリーンセーバを起動するだけならば、Automatorを使うよりもショートカットAppを使う方が簡単でした。


CC BY-SA 4.0
2023-07-14T03:16:47.030
95604
2023-07-14T03:16:47.030
59099
95593
answer