Apples Remote per Script deaktivieren/aktivieren

Psychopatient

Psychopatient

Mitglied
Thread Starter
Dabei seit
13.01.2011
Beiträge
26
Reaktionspunkte
0
Nochmals schönen Guten Abend,

Folgendes Problem:
Auf meinem Schreibtisch steht ein Macbook Pro und Dock mit iPhone. Wenn ich nun die Remote verwende, springen beide Geräte darauf an. Deswegen wollte ich ein Script auf dem Mac schreiben, um mit einem einfachen Klick die Fernbedienung zu deaktivieren. Normalerweise macht man das über Einstellungen, Sicherheit usw...

Mein Script sieht derzeit wie folgt aus:

Code:
display dialog "Disable, Enable the IR receiver" buttons {"Disable", "Enable", "Cancel"} default button 3
copy the result as list to {buttonpressed}
if the buttonpressed is "Disable" then
	try
		do shell script "defaults write /Library/Preferences/com.apple.driver.AppleIRController 'DeviceEnabled' -bool No" password Traumtänzer with administrator privileges
	end try
else if the buttonpressed is "Enable" then
	try
		do shell script "defaults write /Library/Preferences/com.apple.driver.AppleIRController 'DeviceEnabled' -bool Yes" password Traumtänzer with administrator privileges
	end try
end if

Wenn ich es benutze, sieht es ganz gut aus. Ich kann klicken und alles, aber es bewirkt nichts. Es funktionert erst, nach einem Neustart bzw. An/Abmelden.

Was muss ich noch ergänzen? Über eine Antwort wäre ich sehr dankbar.
 
Also bei mir Funktioniert es (habe allerdings gerade keine Fernbedienung um es auch praktisch zu Testen)

evt. muss man erst einmal die Systemeinstellungen öffnen & schließen um den IR Empfänger auch wirklich zu de-/aktivieren.....

Habe also jetzt noch das öffnen und schließen der Systemeinstellung "Sicherheit" hinzugefügt, vielleicht funktioniert das ja für dich:
Code:
set AppleIRController to do shell script "defaults read /Library/Preferences/com.apple.driver.AppleIRController DeviceEnabled"
if AppleIRController is "0" then
	do shell script "defaults write /Library/Preferences/com.apple.driver.AppleIRController DeviceEnabled -bool yes" password "Traumtänzer" with administrator privileges
else if AppleIRController is "1" then
	do shell script "defaults write /Library/Preferences/com.apple.driver.AppleIRController DeviceEnabled -bool no" password "Traumtänzer" with administrator privileges
end if
# AppleIRController wird de-/aktiviert

tell application "System Preferences"
	activate
	reveal (pane id "com.apple.preference.security")
end tell
tell application "System Events"
	quit application "System Preferences"
end tell
# Systemeinstellungen wird geöffnent und wieder geschlossen 

if AppleIRController is "0" then
	display dialog "Der AppleIRController ist jetzt aktiviert"
else if AppleIRController is "1" then
	display dialog "Der AppleIRController ist jetzt deaktiviert"
end if
# Dialog mit aktuellem AppleIRController Status

Ach ja, wie du sicherlich bemerk hast, habe ich dein bestehendes Skript noch einwenig abgeändert (konnte mich einfach nicht halten :D)
 
Zuletzt bearbeitet:
Hm...
die Idee mit dem Neustart der Systemeinstellungen war ja ganz gut, nur leider hilft es nichts.
Also kann es daran nicht liegen...
 
hmm...
Mit UI Scripting sollte es Funktionieren:
Code:
tell application "System Preferences" to activate
tell application "System Events"
	click UI element "Sicherheit" of scroll area 1 of window "Systemeinstellungen" of application process "Systemeinstellungen"
	click UI element 5 of window "Sicherheit" of application process "Systemeinstellungen"
	keystroke "Traumtänzer"
	keystroke return
	click checkbox 1 of tab group 1 of window "Sicherheit" of application process "Systemeinstellungen"
	click UI element 1 of window "Sicherheit" of application process "Systemeinstellungen"
end tell
 
Das klappt auch nicht ganz...

error "„System Events“ hat einen Fehler erhalten: „tab group 1 of window \"Sicherheit\" of application process \"Systemeinstellungen\"“ kann nicht gelesen werden. Ungültiger Index." number -1719 from tab group 1 of window "Sicherheit" of application process "Systemeinstellungen"
 
welches Version von OS X hast du denn? Oder ist deine System Sprache vllt. nicht auf Deutsch.
Dass ist immer das Problem beim UI Scripting, da muss nur der Button wo anders sein oder einen Anderen Namen haben und schon funktioniert es nicht mehr ist halt alles sehr Version abhängig..

Also das Script bleibt bei dir hängen sobald das Schloss geöffnet würde?
ansonsten versuche es mal mit einem kurzen daly (z.B. "delay 0.5") nach "keystroke return"

Kommt mir aber schon alles komisch vor, funktioniert es denn, wenn du alles Manuell machst?
 
Vielen vielen vielen Dank

Also...jetzt hat es funktioniert!!! :Waveyib:
Das Problem war, dass ich beim aufpoppenden Dialogfenster mit der Frage nach dem Passwort einfach zu euphorisch war und die Antwort sofort eintippte. Wenn man sich allerdings zurücklehnt und kurz wartet, funktioniert alles wie von selbst.
Also typischer Fall: Fehler lag beim User.
Vielen herzlichen Dank für Deine Bemühungen.
 
Freut mich, das es geklappt hat, immer wieder gerne ;)
 
Zurück
Oben Unten