1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Systemeinstellungen über Systemevents verwenden

Dieses Thema im Forum "AppleScript" wurde erstellt von Vjay, 18.08.09.

  1. Vjay

    Vjay Süssreinette (Aargauer Herrenapfel)

    Dabei seit:
    28.02.09
    Beiträge:
    403
    Hi,
    ich habe zwar wenig Hoffnung, das mir bei meinem speziellen Problem jemand helfen kann, aber ich versuche es trotzdem mal.
    Ich habe zuhause die Maus auf der rechten Seite und auf der Arbeit links vom Rechner. Ich bin Linkshänder und "kann" beides und so erhoffe ich mir eine Gleichverteilung der Last auf beide Hände.
    Ich habe ein Script geschrieben, welches bei WakeUp/Start des Mac hochläuft und die Primäre Maustaste nach links oder rechts setzt, je nachdem wo ich mich befinde.

    Das sieht etwa so aus, wer das mal braucht:
    Code:
    tell application "System Events"
    		tell application "System Preferences"
    			reveal anchor "mouseTab" of pane "com.apple.preference.keyboard"
    		end tell
    		delay 1
    		tell application "System Events"
    			tell process "System Preferences"
    				tell window "Tastatur & Maus"
    					tell tab group 1
    						click radio button "Maus"
    						delay 1
    						tell radio group 1
    							click radio button "Links"
    						end tell
    					end tell
    					
    				end tell
    			end tell
    		end tell
    	end tell
    
    Links durch Rechts ersetzen für die andere Variante. Schliessen Code drunter habe ich mal weggelassen.
    Jetzt habe ich folgendes Problem, wenn ich den Mac öffne während gar keine Maus angeschlossen ist, erhalte ich eine Fehlermeldung der Systemeinstellungen-Applikation, dass der Reiter Mauseinstellungen ausgeblendet sei, da keine Maus an den Mac angeschlossen ist.
    Im Grunde müsste ich hiervor
    Code:
    reveal anchor "mouseTab" of pane "com.apple.preference.keyboard"
    abfragen, ob der mouseTab überhaupt existiert, aber wie bewerkstellige ich dies? Irgendwie ist mir Appleskript auch etwas schwerfällig, als "normaler" Programmierer habe ich ziemlich Schwierigkeiten mit diesem angeblich besseren Syntax für normale Menschen. Oder die Erleuchtung kam noch nicht ;) Hat vielleicht jemand eine Idee? Notfalls könnte man vielleicht abfragen ob eine Maus angesteckt ist... ?
     
  2. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    du könntest ja die existenz eines ui-elements abklopfen. nur ein beispiel:
    if radio button "Links" exists is false then return

    du könntest aber auch die präsenz deiner maus abklopfen. hier ein handler für solche zwecke.
     
    Vjay gefällt das.
  3. Vjay

    Vjay Süssreinette (Aargauer Herrenapfel)

    Dabei seit:
    28.02.09
    Beiträge:
    403
    In der Sytemsteuerung wirds halt schwierig, da ich die Seite ja direkt öffne mit dem Befehl und diese nicht existiert.
    Aber das mit dem USB sieht gut aus, das werde ich mir mal genauer anschauen, danke.
     
  4. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    du kannst es auch einfach in ein "try" einwickeln:

    tell application "System Events"
       try
          tell application "System Preferences"
             reveal anchor "mouseTab" of pane "com.apple.preference.keyboard"
          end tell
       on error
          activate me
          display dialog "nix maus"
       end try
    end tell
     
  5. Vjay

    Vjay Süssreinette (Aargauer Herrenapfel)

    Dabei seit:
    28.02.09
    Beiträge:
    403
    Hm naja das funktioniert nicht, also schon, aber dann ist die Systemsteuerung mit der Fehlermeldung und dem Hüpf-Icon ja trotzdem da. Dann müsste man wieder Code schreiben um das zu bestätigen. Ist denke ich nicht so praktisch.
     
  6. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    war ja nur so ein "dahin geflotztes beispiel" für einen try-block.
    so sollte es passen (ich würde die 2 Möglichkeit nehmen):

    --(*
    -- MÖGLICHKEIT 1
    tell application "System Events"
       tell application "System Preferences"
          tell pane "com.apple.preference.keyboard"
             if anchor "mouseTab" exists then
                reveal anchor "mouseTab"
             else
                tell application "System Preferences" to quit
             end if
          end tell
       end tell
    end tell
    --*)

    --(*
    -- MÖGLICHKEIT 2
    try
       tell application "System Events"
          tell application "System Preferences"
             activate
             reveal anchor "mouseTab" of pane "com.apple.preference.keyboard"
          end tell
       end tell
    on error
       tell application "System Preferences" to quit
       activate me
       display dialog "nix maus"
    end try
    --*)
     
  7. Vjay

    Vjay Süssreinette (Aargauer Herrenapfel)

    Dabei seit:
    28.02.09
    Beiträge:
    403
    Und so gehts mit Snow Leopard, ob Maus dran oder nicht:

    Code:
    try
    	tell application "System Events"
    		tell application "System Preferences"
    			tell pane "com.apple.preference.mouse"
    				if anchor "mouseTab" exists then
    					reveal anchor "mouseTab"
    				else
    					tell application "System Preferences" to quit
    				end if
    			end tell
    		end tell
    		
    		tell process "System Preferences"
    			tell window "Maus"
    				tell radio group 1
    					click radio button "Rechts"
    				end tell
    			end tell
    		end tell
    		tell application "System Preferences" to quit
    	end tell
    on error
    	tell application "System Preferences" to quit
    end try

    "Rechts" durch "Links" ersetzen, je nach Bedarf.
     

Diese Seite empfehlen