0

Applescript で正しいボタンを選択する方法がわかりません。私はvimを学び始めており、Caps Lock キーを Caps Lock と Ctrl の間で切り替えられるようにしたいと考えています。完了する必要がある手順をマークしました。

(この投稿) を見つけましたが、少しハッキーなようです。たぶんそれは本来あるべき姿ですが、システム設定を示しています。fnキーを切り替えてシームレスに動作する(このコード)とは異なり、使用するたびにウィンドウが表示されます。

誰かアドバイスをいただけますか?

これが私のコードです:

tell application "System Events"
    tell application "System Preferences"
        reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
    end tell

    -- [STEP 1] set mod_keys to value of output from within "Modifier Keys..."
    set mod_keys to button "Modifier Keys..." of tab group 1 of window 1 of application process "System Preferences"

    -- I would prefer not to have to click the mod_keys because I don't want the window popping up but if it's necessary then okay
    click mod_keys

    -- [STEP 2] set cl_key to the second dropdown of mod_keys
    set cl_key to menu item 2 of menu 1 of pop up button 4

    set cl to value of cl_key
    if cl is menu item 2
        set q to menu item 2 of menu 1 of pop up button 4
    else
        set q to menu item 1 of menu 1 of pop up button 4
    end if

end tell

-- This is just to make sure it works, but may be unneccessary
if application "System Preferences" is running then
    tell application "System Preferences" to quit
end if

return q

修飾キーのスクリーンショットは次のとおりです。

ここに画像の説明を入力

ここにリンクの説明を入力してください http://imageshack.us/a/img833/474/o5co.png

4

2 に答える 2

1

これはキーを切り替えます (ドイツ語のラベルを変更する必要があります):

    tell application "System Events"
tell application "System Preferences"
    reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell

tell window 1 of application process "System Preferences"
    click button "Sondertasten …" of tab group 1

    tell sheet 1
        tell pop up button "Feststelltaste (⇪):"

            set state to value
            click
            delay 0.2
            if "Feststelltaste" is in state then
                click menu item "⌃ ctrl-Taste" of menu 1
            else
                click menu item "⇪ Feststelltaste" of menu 1
            end if
            delay 0.2
        end tell
        click button "OK"
    end tell
end tell
    end tell

    if application "System Preferences" is running then
tell application "System Preferences" to quit
    end if

しかし、foo が書いたように、GUI スクリプトは最後の解決策であるべきです。特に Mavericks では、アプリごとに補助デバイスへのアクセスを有効にする必要があるため (スクリプトを変更する場合も同様です)、非常に面倒です。

于 2014-03-22T10:18:01.150 に答える