AppleScript chạy trong Automator, nhưng không thành công khi được khởi chạy thông qua phím tắt


2

Tôi có AppleScript sau trong một dịch vụ sử dụng Run AppleScript trong Automator:

on run {input, parameters}
    set date_ to short date string of (current date)
    tell application "System Events"
        keystroke date_
    end tell
end run

Nó được thiết lập để không nhận đầu vào trong bất kỳ ứng dụng nào và đầu ra thay thế văn bản. Nếu tôi đặt con trỏ trong cửa sổ chỉnh sửa trong Automator và nhấp vào nút chạy, nó sẽ hoạt động và tôi nhận được đầu ra, ví dụ:

...
end run8/15/18

Tôi đã ràng buộc điều này với một phím tắt (Thuộc tính hệ thống -> Bàn phím -> Phím tắt -> chọn tập lệnh của tôi và liên kết tổ hợp phím). Tuy nhiên, khi tôi nhấn tổ hợp phím, bất kể ứng dụng là gì, tôi nhanh chóng (1-2 giây) nhận được một ít bánh răng quay trong thanh menu và lỗi sau trong bảng điều khiển:

Đã phát hiện các ràng buộc bị thiếu cho <private>. Nó không thể được đặt bởi vì không có đủ các ràng buộc để xác định đầy đủ kích thước và nguồn gốc. Thêm các ràng buộc còn thiếu hoặc đặt translatesAutoresizingMaskIntoConstraint = CÓ và các ràng buộc sẽ được tạo cho bạn. Nếu chế độ xem này được trình bày thủ công trên macOS 10.12 trở lên, bạn có thể chọn không gọi [siêu bố cục] từ ghi đè của mình. Đặt điểm dừng trên DETECTED_MISSING_CONSTRAINTS để gỡ lỗi. Lỗi này sẽ chỉ được ghi lại một lần.

Ngày không được thêm vào bất kỳ ứng dụng nào mà tôi làm điều này. Tôi đã thấy một người khác có vấn đề tương tự ở đây ( https://www.alfredforum.com/topic/10311-applescripts-no-longer-work-script-editor-hangs-not-responding-on-sierra/ ) nhưng họ cũng không nhận được câu trả lời. Điều này thật khó hiểu, vì nó dường như có liên quan đến kết xuất cửa sổ, nhưng tôi không có thành phần GUI nào trong tập lệnh của mình, AFAIK.

Tôi đang chạy:

Mac OS Sierra 10.12.6 (16G1510)
Automator Version 2.7 (428)

Ok, trong khi nghiên cứu cho bài đăng này, tôi đã tìm thấy bài đăng này ( https://superuser.com/questions/153890/assign-a-shortcut-to-ricky-a-script-in-os-x/264943 ) tuyên bố rằng có là một lỗi ngăn các dịch vụ hệ thống chạy sau Snow Leopard. Bất cứ ai cũng biết một cách giải quyết mà không có công cụ của bên thứ ba?

Câu trả lời:


1

Tôi đã có thể làm cho nó hoạt động bằng cách lưu AppleScript thành một ứng dụng riêng biệt, sau đó tạo Dịch vụ tự động chỉ đơn giản là khởi chạy ứng dụng đó. Dưới đây là các bước:

  • Tạo một AppleScript mới trong Script Editor và dán mã sau đây (của bạn, nhưng có thêm một chút):

    on run
        set date_ to short date string of (current date)
        tell application "System Events"
            set visible of (first process where it is frontmost) to false -- return focus to initiating app
            delay 0.1 -- make sure the application has had time to regain focusif the script doesn't work, try upping this value a little
            keystroke date_
        end tell
    end run
  • Lưu tập lệnh dưới dạng Application.

  • Tạo một dịch vụ mới trong Automator và thêm một Launch Applicationhành động. Đặt ứng dụng thành ứng dụng bạn vừa lưu từ Script Editor.
  • Liên kết một phím tắt với hành động Automator đó.

Tôi không thể xác minh rằng nó hoạt động trên Sierra, nhưng nó hoạt động trên High Sierra 10.13.6.

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.