Skrypt do przełączania między klawiszami FN (z paskiem dotykowym)

1

Próbuję napisać skrypt do przełączania między Fnklawiszami i kontrolkami aplikacji na pasku dotykowym za pomocą macOS High Sierra. Istnieje kilka aplikacji, które twierdzą, że potrafią to zrobić, ale żadna z nich nie działa na Touchbar. Próbuję teraz napisać skrypt otwierający Preferencje systemowe, ustawienia klawiatury i przełączanie ustawień paska dotykowego. Do tej pory mam kod, poniżej którego przełącza się „Dostosuj jasność klawiatury w słabym świetle”. Muszę tylko dostosować, aby wybrać opcję z menu rozwijanego paska dotykowego.

tell application "System Preferences"
    activate
    set the current pane to pane id "com.apple.preference.keyboard"
    reveal anchor "keyboardTab" of pane id "com.apple.preference.keyboard"
end tell

tell application "System Events" to tell process "System Preferences"
    click checkbox 1 of tab group 1 of window 1
end tell

quit application "System Preferences"

wprowadź opis zdjęcia tutaj

Nick Huntsman
źródło

Odpowiedzi:

1

Możesz sprawdzić komponenty interfejsu interfejsu użytkownika aplikacji, którą próbujesz wykonać za pomocą polecenia „elementy interfejsu użytkownika”

tell application "System Events"
    tell application process "System Preferences"
        get the UI elements of the window "Keyboard"
    end tell
end tell

możesz następnie przewinąć listę w celu znalezienia wymaganego elementu

tell application "System Events"
    tell application process "System Preferences"
        get the UI elements of tab group 1 of window "Keyboard"
    end tell
end tell

faktycznie korzystanie z aplikacji Accessibility Inspector (część Xcode) może pomóc w określeniu elementu do sprawdzenia

Dla naszych celów wygląda na to, że wyskakujące okienko, którym jesteśmy zainteresowani, to przycisk wyskakujący 2 w grupie kart 1 okna „Klawiatura”

Ponieważ jest to wyskakujące okienko, aby wejść w interakcję z jego menu, musisz na niego kliknąć, a następnie wybrać element, który chcesz aktywować. Można to zrobić, określając całą etykietę pozycji menu do kliknięcia, wolałem symulować naciśnięcia klawiszy potrzebne do przełączenia wyboru (strzałka w górę lub w dół, a następnie powrót) ...

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

delay 0.5 -- this depends on how fast is your mac

tell application "System Events"
    tell application process "System Preferences"
        set thePopup to pop up button 2 of tab group 1 of window "Keyboard"

        tell thePopup
            click
            delay 0.2

            if the value of thePopup begins with "App" or the value of thePopup begins with "Expanded" then
                key code {125, 125, 125, 36}
            else
                key code {126, 36}
            end if

        end tell

    end tell
end tell

quit application "System Preferences"

nawiasem mówiąc, w innym pytaniu ktoś zauważył, że jeśli nie aktywujesz aplikacji Preferencje systemowe, skrypty będą nadal działać, ale bez pokazywania ich okna (nadal będziesz widział przełączane menu podręczne)

Gio Valerio
źródło
0

Nie jestem w stanie przetestować, jednak poniższy przykład kodu AppleScript jest taki, jak bym go napisał.

  • Za pomocą click pop up button nzmień nprawidłowy numer.
    • Przykład: click pop up button 2
  • Za pomocą click menu item nzmień nprawidłowy numer lub użyj elementu menu name .
    • Przykłady: click menu item 1lubclick menu item "F1, F2, etc. Keys"
    • Zauważ, że ponieważ nie mogę przetestować, w tym przykładzie 1może nie być równy namepokazanemu.

Określ poprawną wartość dla nobu click poleceń , zastępując ją odpowiednio.


Przykładowy kod AppleScript :

tell application "System Preferences"
    reveal anchor "keyboardTab" of pane id "com.apple.preference.keyboard"
    activate
    delay 1
    tell application "System Events"
        tell tab group 1 of window 1 of application process "System Preferences"
            click pop up button n
            delay 0.2
            click menu item n
            delay 0.2
        end tell
    end tell
    quit
end tell

Uwaga: przykład AppleScript kod jest tak, że i nie zatrudnić żadnego obsługę błędów i jest przeznaczona tylko pokazać jeden z wielu sposobów wykonania zadania. Na Użytkowniku spoczywa zawsze obowiązek dodania / użycia odpowiedniej obsługi błędów w razie potrzeby / potrzeby.

Należy również pamiętać, że wartość z delay poleceń może być konieczne dostosowanie do systemu i czy dodatkowe delay polecenia mogą być lub nie być konieczne. Te delay rozkazy są zawarte w niniejszym opisie jako przykład tego, co może / mogą być konieczne w zależności od więcej niż jednego czynnika.

użytkownik3439894
źródło