Tập lệnh chuyển đổi giữa các phím fn (với Touchbar)


1

Tôi đang cố gắng viết một tập lệnh để chuyển đổi giữa Fncác phím và điều khiển ứng dụng trên Touchbar bằng macOS High Sierra. Có một vài ứng dụng cho biết họ có thể làm điều đó nhưng dường như không có ứng dụng nào hoạt động cho Touchbar. Vì vậy, bây giờ tôi đang cố gắng viết tập lệnh mở ra Tùy chọn hệ thống, cài đặt bàn phím và chuyển đổi cài đặt Touch Bar. Cho đến nay tôi có đoạn mã bên dưới bật tắt "Điều chỉnh độ sáng bàn phím trong điều kiện ánh sáng yếu". Tôi chỉ cần điều chỉnh để chọn một tùy chọn từ menu thả xuống Touch Bar.

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"

nhập mô tả hình ảnh ở đây

Câu trả lời:


1

Bạn có thể kiểm tra các thành phần của giao diện UI của ứng dụng mà bạn đang cố gắng tạo tập lệnh bằng lệnh "Các thành phần UI"

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

sau đó bạn có thể đi sâu vào danh sách để tìm nơi yêu cầu

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

thực sự sử dụng ứng dụng Trình kiểm tra khả năng truy cập (một phần của Xcode) có thể giúp bạn xác định phần tử nào cần kiểm tra

Đối với mục đích của chúng tôi, có vẻ như cửa sổ bật lên mà chúng tôi quan tâm là nút bật lên 2 của nhóm tab 1 của cửa sổ "Bàn phím"

Vì nó là một cửa sổ bật lên, để tương tác với menu của nó, bạn phải nhấp vào nó và sau đó chọn mục bạn muốn kích hoạt. Nó có thể được thực hiện bằng cách chỉ định toàn bộ nhãn của mục menu cần nhấp, tôi thích mô phỏng các tổ hợp phím cần thiết để chuyển đổi lựa chọn (mũi tên lên hoặc xuống và sau đó quay trở lại) ...

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"

Nhân tiện, trong một câu hỏi khác, có người nhận thấy rằng nếu bạn không kích hoạt ứng dụng Tùy chọn hệ thống, các tập lệnh sẽ vẫn hoạt động nhưng không hiển thị cửa sổ của nó (mặc dù vậy bạn vẫn sẽ thấy menu bật lên được chuyển đổi)


0

Tôi không ở vị trí để kiểm tra, tuy nhiên ví dụ AppleScript sau đây là cách tôi viết nó.

  • Với click pop up button n, thay đổi nthành số chính xác.
    • Thí dụ: click pop up button 2
  • Với click menu item n, thay đổi nthành số chính xác hoặc sử dụng các mục menu name .
    • Ví dụ: click menu item 1hoặcclick menu item "F1, F2, etc. Keys"
    • Lưu ý rằng vì tôi không thể kiểm tra, trong ví dụ này, 1có thể không bằng với namehiển thị.

Xác định giá trị chính xác cho ncả hai click lệnh , thay thế nó cho phù hợp.


Ví dụ 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

Lưu ý: Các ví dụ AppleScript đang chỉ là điều đó và không sử dụng bất kỳ xử lý lỗi và có nghĩa là chỉ hiển thị một trong nhiều cách hoàn thành một nhiệm vụ. Trách nhiệm luôn được Người dùng thêm / sử dụng xử lý lỗi thích hợp khi cần / muốn.

Cũng lưu ý rằng giá trị của các delay lệnh có thể cần được điều chỉnh cho hệ thống của bạn và hoặc các delay lệnh bổ sung có thể hoặc không cần thiết. Các delay lệnh được đưa vào đây như một ví dụ về những gì có thể / có thể cần thiết tùy thuộc vào nhiều hơn một yếu tố.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.