2012-04-13 21 views
8

Tôi gặp sự cố với AppleScript và Sự kiện hệ thống.AppleScript - Lỗi sự kiện hệ thống: Quyền truy cập cho các thiết bị trợ giúp bị tắt

Tôi đã chọn "Bật quyền truy cập cho thiết bị trợ giúp" trong ngăn tùy chọn "Truy cập toàn cục" trong Tùy chọn hệ thống.

Khi tôi cố gắng:

arch -i386 osascript -e 'tell application "System Events" to get the position of every window of every process'

Tôi có lỗi này:

System Events got an error: Access for assistive devices is disabled. (-25211)

Bạn có bất cứ ý tưởng?

Cảm ơn rất nhiều

Trả lời

8

Sự cố không phải là thiết bị trợ giúp. AppleScript dường như trả lại sai mã lỗi đó khi nó cố truy cập các cửa sổ của một quá trình không bao giờ có bất kỳ cửa sổ nào (trong trường hợp của tôi là "Trình trợ giúp Google Chrome").

Bạn cần nắm bắt các lỗi. Này làm việc cho tôi:

tell application "System Events" 
    set procs to processes 
    set windowPositions to {} 
    repeat with proc in procs 
     try 
      if exists (window 1 of proc) then 
       repeat with w in windows of proc 
        copy w's position to the end of windowPositions 
       end repeat 
      end if 
     end try -- ignore errors 
    end repeat 
end tell 
return windowPositions 

trả về một danh sách các cặp toạ độ, chẳng hạn như {{1067, 22}, {31, 466}, {27, 56}, {63, 22}, {987, 22 }} - đó là những gì bạn đang cố gắng để có được?

+0

Cảm ơn bạn, tôi sẽ cố gắng this.Last câu hỏi, làm thế nào tôi có thể xác định nếu cửa sổ là trong vành móng ngựa (ẩn) hoặc trên mặt trận? – Tokytok

9

Trên Mac OS X 10.9 bạn thực sự gặp lỗi tương tự khi AppleScript Editor không được phép sử dụng Trợ năng.

Đây là cách bạn kích hoạt nó:

Đến System Preferences>an & Privacy>Privacy>Khả năng tiếp cận.

enter image description here

Sau đó, chỉ cần đánh dấu vào hộp kiểm để lại cho AppleScript Editor và lỗi nên được đi.

+7

Nếu chạy tập lệnh từ dòng lệnh thông qua 'osascript', bạn cũng sẽ muốn thêm Thiết bị đầu cuối vào ứng dụng hỗ trợ Trợ năng. – devios1

1

Tương tự như bài đăng trên trang này về Mac OS X 10.9 (Mavericks), để giải quyết vấn đề này trên Mac OS X 10.8 (và có thể trên các phiên bản trước của OS X), bạn cần đảm bảo rằng cho tùy chọn thiết bị hỗ trợ "đã được bật trong ngăn Trợ năng của Tùy chọn hệ thống.

enter image description here

Các vấn đề liên quan