2012-04-13 12 views
8

Mam problem ze skryptami AppleScript i System Events.AppleScript - Błąd zdarzeń systemowych: Dostęp dla urządzeń pomocniczych jest wyłączony

Mam zaznaczenie "Włącz dostęp dla urządzeń pomocniczych" w okienku preferencji "Dostęp uniwersalny" w Preferencjach systemowych.

Kiedy próbuję:

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

mam ten błąd:

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

Czy masz jakiś pomysł?

dziękuję

Odpowiedz

8

Problemem nie jest to urządzenia wspomagające. Wydaje się, że AppleScript nieprawidłowo zwraca ten kod błędu, gdy próbuje uzyskać dostęp do okien procesu, który nigdy nie może mieć żadnych okien (w moim przypadku był to "Google Chrome Helper").

Musisz złapać błędy. Działa to mnie

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 

powrocie listę współrzędnych par, takich jak {{1067, 22} {31, 466}, {27, 56} {63, 22}, {987, 22 }} - czy to właśnie próbujesz zdobyć?

+0

Dziękuję, postaram this.Last pytanie, w jaki sposób mogę sprawdzić, czy okno jest w stacji dokującej (ukryty) lub na froncie? – Tokytok

9

W systemie Mac OS X 10.9 pojawia się ten sam błąd, gdy AppleScript Editor nie może używać Accessibility.

Oto jak go włączyć:

idź do Preferencje systemowe>Bezpieczeństwo & prywatności>prywatności>Dostępność.

enter image description here

Następnie wystarczy zaznaczyć pole wyboru w lewo do AppleScript Editor a błąd powinien zniknąć.

+7

Jeśli uruchamiasz skrypt z wiersza poleceń za pomocą 'osascript', będziesz chciał dodać Terminal także do aplikacji obsługujących Dostępność. – devios1

1

Podobny do postu na tej stronie o Mac OS X 10.9 (Mavericks), aby rozwiązać ten problem w systemie Mac OS X 10.8 (i prawdopodobnie we wcześniejszych wersjach OS X również), musisz upewnić się, że "Włącz dostęp" dla urządzeń pomocniczych "została włączona w panelu Dostępność Preferencji systemowych.

enter image description here