AppleScriptを使用して、アプリをフォーカスせずにアプリケーションを開く


5

私はiA Writerを十分に使用しているので、ログイン時にフルスクリーンで開きたいのですが、残念ながら開発者は好みを軽視しています。

スタートアップリストに追加できるAppleScriptを作成することにしましたが、適切に動作させることができません。ログイン時にiA Writerを使用して10.8フルスクリーンモードで特定のファイルを開きたいが、通常のデスクトップからフォーカスを変更したり、起動後に少なくとも自動的にプライマリデスクトップに戻したりしたい。編集:ここに提案された編集後の私のコードがあります:

set front_application to front window
tell (application "iA Writer") to open (POSIX file "/PATH/TO/FILE.txt")
activate application "iA Writer"
#EDITED# tell application "System Events" to keystroke "f" using {command down, control down}
#ADDED# delay 1
#ADDED# tell application "System Events" to keystroke "1" using control down
end tell
activate front_application

このコードは、iA Writerを使用してファイルをフルスクリーンで正常に開きますが、iA Writerが制御する新しいデスクトップに切り替え、しばらく待ってからメインデスクトップに戻ります。

OS Xはスペースからデスクトップに変わるので、フォーカスを奪い、デスクトップを強制的に切り替えることなく、Mountain / Lionフルスクリーンでアプリケーションを開くことができるかどうかさえ知りません。

これまでの支援に対して@Lauri Rantaに感謝します!

フルスクリーンになったときにiA Writerがデスクトップを切り替えないようにすることに関するさらなるヘルプをいただければ幸いです。ありがとう!

回答:


2

(元のスクリプトを削除しましたが、これ以上優れたものは思いつきませんでした。)

set fw to front window
do shell script "open ~/Notes/todo.txt -Fa iA\\ Writer"
delay 0.1
tell application "System Events" to tell process "iA Writer"
    perform action "AXPress" of (button 1 where subrole is "AXFullScreenButton") of window 1
end tell
delay 1.5
activate fw

WriteRoomには、カスタムフルスクリーンウィンドウでドキュメントを開くオプションがあります。選択されている場合は、のようなものを使用できますopen file.txt -Fjga WriteRoom

他の誰かがバックグラウンドでアプリケーションを開く必要がある場合は、open -jgまたはを使用できますlaunch。アプリケーションが開いていない場合、launchおよびopen -jgアプリケーションが開いているがウィンドウがない場合は、表示可能なウィンドウを開くことがあります。

set b to "com.apple.TextEdit"
tell application "System Events"
    if bundle identifier of processes contains b then
        launch application id b
    else
        do shell script "open -jgb " & b
    end if
end tell

iA Writerがこの動作を持ちたい唯一のものであるため、アプリウィンドウの復元を有効にしていません。[CONTROL] +数字キーでデスクトップの変更を有効にし、[CONTROL] + 1キーストロークを送信する前に1の遅延を追加しました。これにより、iA Writerは切り替え前にフルスクリーンに入るのに十分な時間を確保できます。自動的に切り替えることなく、Lion-fullscreenの2番目のデスクトップを静かに作成できることを望んでいたので、理想的ではありません。これを使用して、よりエレガントなソリューションを探します。ありがとう!
オーディオスノー

0

この質問がまだある場合は、これを使用してください:

do shell script "open -ga 'iA Writer'"

open物事を開くターミナルコマンドです。この-gオプションは、バックグラウンドでアプリを開きます。-a開くためのアプリを指定します。ここにあるopenように、ファイルが提供されない場合、ファイルなしでアプリを開くだけです。特定のファイルを開きたい場合は、使用できますdo shell script "open -ga 'iA Writer' myfile.txt"

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.