Apple ScriptでANSI⇔JIS切替

JIS配列のMacとANSI配列のメカニカルキーボードを所有していて、どちらも同じくらいの頻度で利用するのですが、設定アプリでいちいち切り替えしなければならず、「US配列とJIS配列のキーボードの設定を瞬時に変える (Mac)」(https://kyogom.com/tech/ansi-to-jis/)で配列を変更していました。しかし、Montereyにアップグレードしたところ「アクション“AppleScriptを実行”でエラーが起きました: “System Eventsでエラーが起きました: button "スキップ" of window "キーボード設定アシスタント" of process "KeyboardSetupAssistant"を取り出すことはできません。”

」とエラーメッセージが出て使えなくなってしまいました。おそらくUIの変更で合わなくなったと思われます。 スクリプトを書こうにもどうすればいいのかわからないため、コミュニティで相談したいと思い、投稿しました。回答よろしくおねがいします。


Big Surまで利用できていたApple Scriptを載せておきます。

tell application "System Preferences"
	activate
	set current pane to pane "com.apple.preference.keyboard"
	delay 0.4
end tell
tell application "System Events"
	tell process "System Preferences"
		tell tab group 1 of window "キーボード"
			click button "キーボードの種類を変更…"
			delay 0.4
		end tell
	end tell
	tell window "キーボード設定アシスタント" of process "KeyboardSetupAssistant"
		click button "続ける"
		tell application "System Events" to keystroke "z" using command down
		delay 0.4
		click button "スキップ" 
		delay 0.4
		tell radio group 1 of group 1
			click radio button "JIS(日本語)"
		end tell
		click button "完了"
	end tell
end tell

MacBook Air (2020 or later)

投稿日 2021/11/03 05:20

返信
返信: 2

2021/11/03 07:48 G0heu18 への返信

キーボード繋いだ時にansi、jis切り替える必要ありますか?

最初設定してやれば、2回目以降はそのキーボード使う時は正しいキー配列になってくれませんか?

以前使ってた時は、同時にjisキーボードとansiキーボードを繋いでても、jisキーボードを使う時はjis配列で使えたし、ansi配列のキーボードはansi配列で使えてましたけど。今はその環境がないので確かめられませんけど。

もし、そのスクリプト使う必要があるなら、実際に使うのはコンパイルしたものを使ってるのではないかと思うのですが、montereyで再コンパイルしたら正常に動くようになりませんか?

2021/11/03 08:05 はに への返信

最初設定してやれば、2回目以降はそのキーボード使う時は正しいキー配列になってくれませんか?

>ならないんです…(泣)なので困ってます。


ごめんなさい、コンパイル、再コンパイルってよくわかりません…

スクリプトは設定アプリの起動、キーボード設定アシスタントの呼び出し、入力方式の選択を手動でやっていたものをマクロでやっているもので、それがバージョンアップで変わった仕様に当たるようにしたいのです。

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

Apple ScriptでANSI⇔JIS切替

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