kota1021
@kota1021 (松本 幸太郎)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Apple Scriptで、取得した文字列を別のアプリの入力フォームに渡す方法

解決したいこと

Apple Scriptで、取得した文字列を別のアプリの入力フォームに渡す方法

例)
Apple Scriptで独自のテキストフィールドで文字列を取得し、複数の辞書アプリに同時にテキストを渡すことで、簡単に横断検索ができるアプリをつくろうとしています。その第一段階として、macに内蔵の「辞書」にテキストを渡そうとしたのですが、うまくいきません。入力フォームで「こんにちは」と入力した際、logで見ても、確かに変数には「こんにちは」が入っているのですが、その変数をkeystrokeで「辞書」に入力すると、なぜか”aaaaa”になってしまいます。
初歩的な質問で大変恐縮ですが、自力で調べても解決しませんでした。お力を貸していただきたいです。

スクリーンショット 2021-12-07 10.42.56.png

スクリーンショット 2021-12-07 10.43.20.png

スクリーンショット 2021-12-07 10.44.17.png

該当するソースコード

set textField to display dialog "調べたい単語! " default answer ""
set myQuely to text returned of textField
log myQuely

activate application "Dictionary"
tell application "System Events"
    tell process "Dictionary"
        log myQuely
        key code 51
        keystroke myQuely
        key code 36
    end tell
end tell
0

1Answer

keystroke はキーボード入力を再現するコマンドなので日本語は入力できないようです。まず日本語文字列をクリップボードにコピーし、 keystroke で Cmd+V を入力して貼り付ける方法が紹介されています。 https://www.dev-dev.net/entry/2021/03/24/164931

参考までに、このページは「AppleScript keystroke 日本語」で検索して見つけました。

1Like

Comments

  1. @kota1021

    Questioner

    おお!まさに探していた情報です。おかげさまで、求めていた動作が出来ました。検索クエリまで教えてくださりありがとうございます。勉強になりました!

Your answer might help someone💌