Bisher habe ich 4 Monitore nebeneinandner problemlos und begeisternd im Einsatz. Nun sollen auch noch weitere Monitore übereinander dazukommen. Für Pausibilitäts-Prüfungen (z.Bsp. "auf welchem Monitor befindet sich der Mauszeiger ?" oder "Fenster Monitor-mittig aufbauen") benötige ich die Anfangs-Positionen der einzelnen Monitore (z.Bsp. x/y der linken, oberen Monitor-Ecke oder so). Mein bisheriger Algorithmus (via DesktopWidth(x)) klappt nur bei nebeneinanderliegenden Monitoren / Desktops.
Weiss wer, wie ich die Kombinationen der Monitore rauskriege (ab Besten unabhängig von
seitlicher / höhentlicher Reihenfolge), um z. Bsp. den Mauszeiger eindeutig einem Monitor zuordnen zu können ?
Also neben DesktopWidth(x) und DesktopHeight(x) brauch´ ich sowas wie DesktopX(x) und DesktopY(x)... und das Ganze optimalerweise auch noch im Rahmen vom KVM-Umschaltung (Keyboard, Video und Maus umschaltend zwischen 4 Rechnern: also einige Monitore können je nach Bedarf dem einen oder anderen Rechner zugeordnet werden, wodurch sich die Monitor-Kombinationen der Rechner im laufenden Betrieb ändert)
Ist wohl ´ne ziemlich individuelle Problemstellung, vielleicht hat doch schon jemand hilfreiche Erfahrungen gemacht ???
Multi-Monitor-Kombination (Monitore neben- und übereinander)
Re: Multi-Monitor-Kombination (Monitore neben- und übereinan
Na wenn du die Befehle brauchst, dann benutz sie doch auchsibru hat geschrieben: neben DesktopWidth(x) und DesktopHeight(x) brauch´ ich sowas wie DesktopX(x) und DesktopY(x)
DesktopX() und DesktopY() machen genau das was du willst. Der Hauptmonitor ist immer 0,0.
Wenn du jetzt einene Monitor links daneben hast, dann hat dieser die Koordinaten -W and 0 (also bei 2 Monitoren mit einer Auflösung von 800x600 px: -800 und 0)
Du musst einfach nur ExamineDesktops() auf jedem Rechner aufrufen und schon werden die Daten aktualisiert.
Am besten in einem Timer, da du ja nicht weißt wann die Bildschirme umgeschaltet werden.
Hier, einfach mal das Beispiel aus der Hilfe erweitert.
Code: Alles auswählen
;
; ------------------------------------------------------------
;
; PureBasic - Desktop example file
;
; (c) 2004 - Fantaisie Software
;
; ------------------------------------------------------------
;
NbDesktops = ExamineDesktops()
MessageRequester("Information", "You have "+Str(NbDesktops)+" desktop(s)")
; Let's enumerate all the desktops found
;
For k=0 To NbDesktops-1
Text$ = "Desktop n°"+Str(k+1)+#LF$+#LF$
Text$ + "Size: "+Str(DesktopWidth(k))+"*"+Str(DesktopHeight(k))+#LF$
;DesktopPosition X/Y hinzugefügt
Text$ + "Position: "+Str(DesktopX(k))+" / "+Str(DesktopY(k))+#LF$
Text$ + "Color depth: "+Str(DesktopDepth(k))+#LF$
If DesktopFrequency(k) = 0
Text$ + "Frequency: Default"+#LF$+#LF$
Else
Text$ + "Frequency: "+Str(DesktopFrequency(k))+" Hz"+#LF$+#LF$
EndIf
Text$ + "Name: "+DesktopName(k)
MessageRequester("Information", Text$)
Next
Signatur und so
Re: Multi-Monitor-Kombination (Monitore neben- und übereinan
Danke !
Ich hab´ PB4.20, da gibts die beiden Anweisungen nicht. Und die Suche in der VersionsHistrory nach "Desktopx" war auch erfolglos...
Immerhin wieder mal ´n Anschubser zum PB-Update.
Gruss
Sibru
Ich hab´ PB4.20, da gibts die beiden Anweisungen nicht. Und die Suche in der VersionsHistrory nach "Desktopx" war auch erfolglos...
Immerhin wieder mal ´n Anschubser zum PB-Update.
Gruss
Sibru

Re: Multi-Monitor-Kombination (Monitore neben- und übereinan
Oha, ist die schon so alt oO Mir ist auch gerade erst bewusst geworden, dass wir jetzt auf 5.x sind. Dachte mir grade "hm, 4.2 die hab ich doch auch *nachschau* Oh 5.2"
Ich bin auch so einer der nur updatet wenn ein Code aus dem Forum mal wieder nicht funktioniert weil der Befehl einfach noch nicht existiert^^
Gutes Gelingen
Ich bin auch so einer der nur updatet wenn ein Code aus dem Forum mal wieder nicht funktioniert weil der Befehl einfach noch nicht existiert^^
Gutes Gelingen
Signatur und so