Antwort schreiben
Thomas 2013-03-08 18:51
Hallo, ich habe gerade ein fatales Problem bemerkt, was meine Scripte für meinen HTPC möglicherweise überholungsbedürftig macht. Mit Ultramon suche ich über sys.monitors die monitor-ID in dem die Collection nach dem gewünschten Monitor-Name durchlaufen wird, schaue, ob dieser Monitor auch verfügbar ist und starte dann die Media-Anwendung Media-Portal mit Übergabeparameter. Dieser Übergabeparameter (Monitor-ID) sollte dazu dienen, diese Anwendung auf dem gewünschten Monitor zu starten. Bisher klappte das gut, jetzt stellte ich aber fest, dass einer von beiden (Windows / Ultramon) die ID gewechselt hat. Somit wird Media-Portal gerade immer auf dem entgegengesetzten Monitor gestartet. Offensichtlich matchen die ID's von Windows und Ultramon nicht 100%. Da das sporatische Wechseln der ID (ich denke, das liegt an Windows) immer wieder passieren kann, suche ich eine robuste variante, die mir tatsächlich die echte Windows-Monitor-ID zurückgibt. Was kann ich tun?
|
Christian Studer 2013-03-09 03:00
Du kannst die Monitornummer die UltraMon verwendet via UltraMon Menü > Einstellungen für Anzeige ändern (nur unter Windows 7 und später), dazu den Monitor wählen dessen Nummer geändert werden soll, dann auf Aktionen klicken und 'Monitornummer ändern' wählen.
Wenn die von Windows verwendete Nummer aber dauernd ändert würde ich dir empfehlen in deinem Skript die UltraMon Monitornummer zu verwenden, diese sollte eigentlich nicht ändern. Du kannst vom Skript aus auch die Serien-Nr. des Monitors abfragen, via Monitor.SerialNumber.
Christian Studer - www.realtimesoft.com
|
Thomas 2013-03-09 03:23
Hallo, danke für Deine Antwort. Das mit dem Ändern, ist sicher eine Variante, aber für ein familientaugliches Media-Center nicht geeignet. Denn wenn TV nur auf dem kleinen Monitor gestartet wird... Das gibt Ärger. Die zweite Variante kann ich auch nicht nehmen, da Media-Portal als Parameter die Windows-eigene Monitor-ID übergeben haben möchte und dadurch ja das Problem erst entstanden ist. Nun muss ich überlegen, was ich tun kann. Ich habe schon gegoogelt, ob man nicht eine Windows-API anzapfen kann um die ID zu ermitteln, aber da bin ich noch nicht wirklich fündig geworden. Woran liegt es eigentlich, dass Ultramon und Windows unterschiedliche ID's verwenden? Viele Grüße Thomas
|
Christian Studer 2013-03-10 07:43
Die von Windows verwendete Monitornummer lässt sich leider auf Windows 7 und später nicht zuverlässig ermitteln (hatte das angeschaut aber keinen Weg gefunden).
Was passiert denn wenn du die Monitornummern änderst so das Windows und UltraMon wieder die gleiche Nummerierung verwenden?
Christian Studer - www.realtimesoft.com
|
Thomas 2013-03-11 03:53
Das Ändern kann ich machen. Das löst aber nicht das Problem, dass es zwar eine Weile (einige Wochen) gut geht so, dann aber durch irgendwelche Selbsterkennungsmechanismen, die man bei Windows nicht ausschalten kann, die Konstellation wechselt und dann das erwartete Ergebnis ins Gegenteil verkehrt wird, sprich: die Familie den Fernseher nicht anbekommt. Daher benötige ich eine sichere Methode, bei der diese Änderung keine Auswirkungen hat. Möglich, dass ich dazu Ultramon leider nicht mehr verwenden kann und ich irgendwie an die Windows-eigene Konstellation herankommen muss. Solange ich im Ultramon-Kontext bleibe (Eigenschaften wechseln, Primären Monitor einstellen etc.) klappt Ultramon selber gut. Aber wenn ich die ermittelte ID außerhalb von Ultramon verwende um per Parameter eine Anwendung zu starten, die die Monitor-ID von Windows verlangt, geht das dann eben nicht. Insofern benötige ich jetzt nur noch einen Tipp wie ich die Windows-ID auslese. Ciao Thomas
|
Antwort schreiben
|