• 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

Ist es möglich den Hinweis (Badge) eines bestimmten Dock Symbols mit Applescript abzufragen?

lxne

Erdapfel
Registriert
31.08.15
Beiträge
3
Manche OS X Dock Symbole zeigen Hinweise (z.B. für neue Nachrichten in Skype) in ihrem "Badge". Ist es Möglich mit AppleScript den Hinweis eines bestimmten Dock Symbols abzufragen um ihn dann an anderer Stelle wiederzugeben?

Hilfe wäre sehr willkommen
Alex
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
Eine vereinheitlichte AS-Methode gibts dafür nicht.
Aber bei vielen Programmen lässt sich dieser Wert aus den App-Preferences auslesen, per Shellskript (was sich wiederum problemlos in ein Appleskript einbetten lässt, mit: do shell script "..." ).
Allerdings musst du dazu erst mal selbst rausfinden, ob dort überhaupt ein entsprechender Wert vorgehalten wird und unter welchem Key er gespeichert ist. Dazu musst du als Vorbereitung dafür sorgen, dass eine solche Zahl überhaupt erst mal angezeigt wird.
Dann liest du mit dem "defaults" Befehl die gesamten Einstellungen des Programms aus und findest darin den passenden Key (der i.d.R. den Substring "BadgeCount" o.ä. aufweisen sollte). Mit einem entsprechend verfeinerten defaults-Aufruf kannst du diese Zahl dann genau und gezielt auslesen.

Beispiel: "App Store.app"
Die gesamten Einstellungen einsehen:
defaults read -app "/Applications/App Store.app";
Der Output enthält (bei 3 verfügbaren Updates) in diesem Fall folgendes Key/Werte-Paar:
...
appStoreBadgeCount = 3;
...

Die gezielte Abfrage nur dieses Wertes erfordert dann nur dessen Key:
defaults read -app "/Applications/App Store.app" appStoreBadgeCount;
3


Zur Verwendung von "do shell script" noch:
Doppelte Anführungszeichen ("Gänsefüsschen") und die Backslashes haben sowohl im Shellskript als auch in Appleskript eine spezielle Sonderfunktion. Damit AS dem eingebetteten Shellskript diese Zeichen nicht "wegfrisst" und sie sauber durchreicht, müssen diese jeweils durch einen vorangestellten Backslash maskiert werden. Dabei empfiehlt sich die Textkorrektur des Shellskripts in dieser Reihenfolge:
1) Jeder Backslash wird zum doppelten Backslash
2) Jedes Gänsefüsschen wird zu Backslash-Gänsefüsschen.

Ein fertig in ein AS eingebautes Shellskript zu obigem Beispiel könnte also im Skripteditor so aussehen:

set my_var to do shell script "
defaults read -app \"/Applications/App Store.app\" appStoreBadgeCount;
"


Problem?
 
  • Like
Reaktionen: ottomane und lxne

lxne

Erdapfel
Registriert
31.08.15
Beiträge
3
Vielen Dank Rastafari für die ausgezeichnete Antwort! :)
Funktioniert beim App Store einwandfrei.
Leider lässt sich der Wert von Skype nicht auf diese Weise abfragen (soll wohl nicht zugänglich sein) :rolleyes:

Trotzdem hab ich viel gelernt.
Danke nochmals!
Alex
 

ottomane

Golden Noble
Registriert
24.08.12
Beiträge
16.387
Sehr genial. Ich habe keine Ahnung, ob ich das mal brauche, aber auch ohne das habe ich wieder etwas gelernt. Danke!