• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Systemeinstellungen über Systemevents verwenden

Vjay

Süssreinette (Aargauer Herrenapfel)
Registriert
28.02.09
Beiträge
404
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... ?
 

CloneOfMyself

Weigelts Zinszahler (Rotfranch)
Registriert
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.
 
  • Like
Reaktionen: Vjay

Vjay

Süssreinette (Aargauer Herrenapfel)
Registriert
28.02.09
Beiträge
404
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.
 

CloneOfMyself

Weigelts Zinszahler (Rotfranch)
Registriert
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
 

Vjay

Süssreinette (Aargauer Herrenapfel)
Registriert
28.02.09
Beiträge
404
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.
 

CloneOfMyself

Weigelts Zinszahler (Rotfranch)
Registriert
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
--*)
 

Vjay

Süssreinette (Aargauer Herrenapfel)
Registriert
28.02.09
Beiträge
404
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.