Finde nicht den Visible Text den AU3Info anzeigt

  • Guten Tag allerseits,

    ich möchte iTunes automatisieren und hänge aktuell an folgendem Problem:

    Die Airplay-Lautsprecher werden über eine Liste an- und abgewählt, welche erscheint, wenn man den Airplay-Button drückt. Wenn ich den Mauszeiger über diese geöffnete Liste führe, bekomme ich mit AU3Info folgende Werte (Summary):

    ---------------------------------------------------------------------------------------------------------------
    >>>> Window <<<<
    Title:
    Class: iTunes
    Position: 124, 56
    Size: 382, 257
    Style: 0x16000000
    ExStyle: 0x00080088
    Handle: 0x00040474


    >>>> Control <<<<
    Class: Static
    Instance: 4
    ClassnameNN: Static4
    Name:
    Advanced (Class): [CLASS:Static; INSTANCE:4]
    ID: 172779104
    Text: Keller
    Position: 75, 93
    Size: 107, 23
    ControlClick Coords: 89, 3
    Style: 0x52010000
    ExStyle: 0x00010020
    Handle: 0x0003047A


    >>>> Mouse <<<<
    Position: 164, 96
    Cursor ID: 2
    Color: 0xFFFFFF


    >>>> StatusBar <<<<


    >>>> ToolsBar <<<<


    >>>> Visible Text <<<<
    Tönnchen
    MACMINI
    Keller
    Mein Computer


    >>>> Hidden Text <<<<
    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------

    In meinem Skript möchte ich gerne die Lautsprecher einzeln an-, abschalten und lautstärkeregeln können. Da ich die zugehörigen Listeneinträge scheinbar nicht direkt als Controls ansteuern kann, auch wenn AU3Info mir die z.B. zuhegörigen CLASSNNs liefert (ich habe viel mit Controlclick experimentiert, der Airplay-Button selber reagiert, aber ich habe bisher keinen Weg gefunden, per Controlclick direkt die Lautsprecher zu erwischen,) möchte ich gerne auswerten, welche Lautsprecher gerade in iTunes "sichtbar" sind, da sich diese ändern könnnen, und ich die zugehörigen Lautsprecher dann wohl per direktem MouseClick ansteuern muss. Im obigen Beispiel wären das die vier Einträge unter Visible Text. Ich habe bisher weder mit WinGetText noch ControlGetText geschafft, diesen Text einzufangen. Das sollte aber doch möglich sein, wenn AU3Info diesen Text "sieht"? Da ich nicht mehr weiterkomme wäre ich für Tips hierzu dankbar.

    Beste Grüße
    Tom

  • Es existiert noch nicht wirklich. Ich hatte fragmentarisch erstmal nur versucht diese Texteinträge zu fangen. Dazu habe ich viel mit ControlGetText (auch mit den optionalen Parametern wie CLASS TEXT usw.) experimentiert, aber nachdem es nie funktionierte habe ich die zig Versionen nicht gespeichert. Ich hatte gehofft man könnte an der AU3Info-Ausgabe erkennen wie das zu machen ist.

    Ich melde mich baldestmöglich mit ein paar Beispielen zurück. Danke soweit schonmal.

    Einmal editiert, zuletzt von beagle (6. Oktober 2016 um 18:31)

  • Danke für den Hinweis zu der UDF. Ich hatte sie früher schon kurz gesehen, aber mir schien, dass der Airplay-Bereich (und damit meine gesuchten Controls) nirgends berührt wird (soweit ich das überblicke).

    Der Vollständigkeit halber sei noch erwähnt: Sowohl das iTunes (12.5.1.21, 32-Bit) als auch meine Skriptversuche laufen unter Win7 32-Bit in einer Virtualbox, und diese unter Win10 64-Bit. Und zugreifen/skripten tue ich meist über eine RDP-Sitzung in die VM. Irre was heutzutage so alles geht :)

    Hier jetzt eines meiner Experimente mit WinGetClassList und ControlGetText:



    Der Screenshot:

    [Blockierte Grafik: http://gran-it.de/files/iTunes.jpg]


    Und das Ergebnis in der Textdatei (Klassentexte.txt):

    -------------------------------------------------------------------------------
    0 :
    1 :
    2 : Suchen
    3 : Zum MiniPlayer wechseln
    4 : Nächste Ansicht
    5 : Vorherige Darstellung anzeigen
    6 :
    7 : AirPlay
    8 : Zufällige Genius-Wiedergabe
    9 : Zum MiniPlayer wechseln
    10 :
    11 :
    12 :
    13 :
    14 :
    15 :
    16 :
    17 :
    18 :
    19 :
    20 :
    ------------------------------------------------------------------------------


    Es sieht so aus, als ob bei allen gefundenen Klassen (habe das auch mit "Static" und "Edit" durchgespielt) nirgends als Text die gesuchten Lautsprecher auftauchen. Da sie ja aber im Infotool zu sehen sind, vermute ich, dass ich irgendwie an der falschen Stelle suche?

    Danke für Eure Geduld.

    2 Mal editiert, zuletzt von beagle (18. Oktober 2016 um 10:29)

  • Gehe ich recht in der Annahme, dass die Lautsprecher im LAN/Wlan, eingebunden sind? Dann sollte man diese per http ansprechen könne. Stell mal die Ip fest und führe einen Port Scan durch, du wirst dich wundern was die Lautsprecher so alles "drauf" haben.

    Gruß

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Ja, guter Gedanke, das stimmt. Die iOS Remote-App nutzt, wie auch diverse Fremd-Apps, das DACP-Protokoll über http. Damit habe ich mich jetzt ca 2 Jahre rumgeprügelt, es wäre die erheblich elegantere Lösung gewesen. Das Protokoll ist zwar mal " geknackt" worden und mehr oder weniger offengelegt (allerdings nicht von Apple), aber der sog. Pairing-Prozess ist tricky und was für findige Coder (zu denen ich leider gar nicht gehöre). Ich habe selber lange und viel damit experimentiert, diverse Quellen angeschrieben, und auch einen Kumpel, der zur gerade genannten Kategorie im PHP-Bereich gehört, hinzugezogen. Am Ende hat es dann aber immer aus diesem oder jenem Grund nicht geklappt. iTunes unter Windows hat ja auch eine COM-Schnittstelle, aber auch die bedient wiederum nicht die Airplay-Funktionen. Und es gab auch mal um 2004 rum ein SDK, was aber irgendwie auf ominöse Weise wieder verschwunden ist. Konnte es nirgends mehr runterladen, wobei auch fraglich wäre was ich damit anfangen könnte. Ich meine also alle für mich erreichbaren Register gezogen zu haben, aber eben leider ohne Erfolg. Und habe jetzt gesagt Schluss, Zeit für Plan x oder y.

    Kurz noch zum Hintergrund: Bei uns läuft iTunes unter Windows und bedient im Haus die diversen Airplay-Speaker. Wir haben uns nur wegen diesem Feature z.B. auch iPhones angelegt, für die Fernsteuerung. Vor Jahren war das nämlich schon eine halbwegs erschwingliche und ordentlich funktionierende Multiroom-Lösung (uns geht es primär darum, in vielen Räumen synchron die gleiche Musik zu hören). Daran hatte ich schon viele Jahre vorher mit wenig praktischem Erfolg gebastelt. Und der Clou ist nun, die iTunes-Fernsteuerung auch über billige X10 Funkfernbedienungen zu realisieren, was den WAF enorm erhöht. (Und wo man es auch verschmerzen kann, wenn sie z.B. mal in die Badewanne fallen.) Immer das Handy rauskramen zu müssen usw. war nicht wirklich sexy. Über die X10s lassen sich dann nebenbei auch noch die Hue-Lampen und Max!-Heizkörperregler bequem regeln, also ein günstiges kleines Heimautomationssystem. (Und neben AutoIT auch einer der Gründe warum das alles unter Windows läuft, für die X10s gibt es keine Mac-Treiber). Soweit läuft das alles auch schon prima mit AutoIT-Skripten. Jetzt fehlt halt nur noch das Sahnehäubchen, die Speaker auch einzeln regeln zu können.


    Danke und Gruß
    Tom

    2 Mal editiert, zuletzt von beagle (18. Oktober 2016 um 10:31)

  • JA Mutiroom - das ist so eine Geschichte mit 2 Gesichtern.

    Habe bei mir ein NAS mit Sonos Komponenten laufen. Nun ärgert mich SONOS seit Jahren mit bescheuerten Zwangsupdates. MAl geht dieses Tablett nicht mehr, mahl auf diesem "alten HAndy" permanent wird der Status der Firmware geändert, mit der Folge, dass man die Spielrgeln für die Software und die Hardware gleich mitändert. Ob man das will oder nicht.

    Man sollte die Kerle mal verklagen. Man hat ein "Musikgerät" angeschafft mit bestimmten technischen Eigenschaften und irgendwann kannst du die ganzen Bedienteile (meist irgendetwas ausgemustertes) dann doch "wegwerfen".

    Als ich mich ein wenig nach "Fremdsoftware" für den Läppi umgesehen habe, bin ich zufällig auf die Oben erähnte "Geschichte gestoßen."
    Ich werde den Sonos Krempel demnächst bei ebay "entsorgen". Mein Yamaha kann auch Mutiroom, da hat mich bis vor kurzem nur die nichtvorhandene Playersoftware für meinen Läppi gestört, aber da habe ich was schickes gefunden - also weg mit dem Sonos .

    Kannst Du die Speaker per DLNA ansprechen? Da gibt es entsprechende Steuersoftware....

    Was hast Du da so alles an Home Automation am laufen?

    Gruß

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Als Steuersoftware fürs Streaming soll eindeutig iTunes fungieren. Sonst müsste alles nochmal komplett neu angelegt werden, und dafür läuft es schon zu gut so wie es jetzt ist. iTunes hat zwar nicht zu unrecht einen fragwürdigen Ruf, wenn man sich aber drauf einlässt, hat es durchaus auch seine guten Seiten. Und genau die Erfahrungen die Du mit Sonos & Co. beschreibst, haben mich davon abgehalten viel Geld in diese Inseln zu investieren. Ich zittere zwar auch vor jedem iTunes-Update (bzw. habe Updates disabled), aber es ist insgesamt doch ein relativ offenes System. Z.B. durch die nicht allzu teuren Airport Express-Receiver, um vorhandene Speaker/Anlagen weiter zu nutzen; dann gibt es noch die Shairport-Software, die vom Raspi über PCs fast alles was rechnet kostenlos in einen Empfänger verwandelt (wenn teils auch etwas wackelig), und zu guter letzt fertige Speaker mit integriertem AirPlay. Wir nutzen da einen Libratone Zipp mit Akku, um auch mal in den Garten oder andere nicht dauerhaft versorgte Orte die Musik mitnehmen zu können. Ein Nachteil von AirPlay ist, dass man nicht bequem zentral gleichzeitig in verschiedene Räume verschiedene Musik streamen kann. Aber das brauchen wir auch nicht primär, uns geht es mehr um die synchrone Beschallung durchs ganze Haus. Und über die Klangqualität kann man naürlich auch diskutieren, für unseren Alltagsbedarf reicht es aber völlig.

    Als Steuerzentrale dient ein MacMini unter Windows, der mit ca. 10 gemessenen Watt im Dauerbetrieb mit einem i5 am Flachbild im Wohnzimmer sogar noch z.B. für eine Runde (älteres) Fifa ausreicht. Finde ich vom Verbrauch/Rechenleistungsverhältnis ziemlich unschlagbar.Dazu kommen noch die Hue- und die Max!-Bridges. Die X10-Fernbedienungen haben mit 433MHz ausreichende Reichweite durchs ganze Haus, kosten um die 10 Euro, und ein etwas unhandliches Modell wird bei Pearl sogar für 1 Euro verramscht. Ideal zum Schlachten für eigene Umbauten wie z.B. Wandschalter usw.: http://www.pearl.de/a-PX9454-1243.shtml Oft liegen/lagen sie auch Medion-PCs bei. Eventghost nimmt die X10-Befehle an und löst entweder selber Aktionen aus, oder ein AutoIT-Skript übernimmt die komplexere Steuerung. Das sind dann noch Hue-Lampen (mittlerweile ziemlich viele, wenn man einmal anfängt... sind zwar teuer, aber wir finden die Beleuchtungsmöglichkeiten damit toll), und demnächst sollen noch evtl. die auch recht günstigen Max! Heizkörperregler dazukommen, die laufen im Moment noch zeitgesteuert und über App. Letzlich hat man dann mit den in allen Räumen rumliegenden X10s die Musik, die Beleuchtung, und später evtl. auch noch die Heizung, in einer Hand. Mein persönlicher X10-Favorit ist übrigens dieses Modell: http://www.ebay.de/itm/Medion-200…d-/251833345589 Ist hier zwar etwas teurer, aber dafür am kleinsten und handlichsten, und hat den größten WAF. Die Zahlentasten rufen die wichtigsten Playlists/Musik-Genres auf, eine Wippe für Lautstärke, die andere demnächst für die Wohnzimmerhelligkeit, das Steuerkreuz soll zum Durchschalten für verschiedene Hue-Szenen dienen, und auch zum Speichern von gerade angelegten Szenen. Wenn ich denn mal wieder meine Programmierfäule überwinde... bin eigentlich mehr der Hardware-Frickler als Programmierer.

    Und nun zurück zum Thema: Die oberen fünf Tastenpaare sollen die Airplay-Empfänger in den verschieden Etagen an- und abschalten können (und dann beim jeweils aktiven auch die Lautstärke regeln) , wenn ich z.B. in der Badewanne chillen möchte, meine Freundin aber gerade Fernsehen guckt. Kommt dann nicht so gut, wenn auf einmal die Musik unten mit anläuft. Dann muss man im Moment doch wieder das iPhone rausholen, lästig, besonders für die Dame....

    Tja, und da hängt es immer noch, bin noch nicht weiter gekommen. Kann man denn sicher sein, dass wirklich alles, was das Info-Tool anzeigt, auch per Skript angesteuert werden kann?

    Gruß
    Tom

    PS: Falls diese Story hier jemanden in diesem Forum stört bitte kurzen Hinweis, dann verlagere ich das.