Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Bildschirm erkennen bei duplizierten Bildschrim (https://www.delphipraxis.net/206088-bildschirm-erkennen-bei-duplizierten-bildschrim.html)

Delphi_Rainer 18. Nov 2020 09:39

Bildschirm erkennen bei duplizierten Bildschrim
 
Hallo !

Ich habe 2 USB Touch Monitore. Diese sind unter Windows Anzeige dupliziert. Also beide zeigen den selben Desktop an. (Vorgabe eines Kundenprojektes)

Gibt es eine Möglichkeit die Touch Eingabe trotzdem zu unterscheiden ?

Delphi gibt mir bei dieser Einstellung nur einen Monitorcount = 1 zurück :(

Grüsse

Rainer

Bernhard Geyer 18. Nov 2020 09:45

AW: Bildschirm erkennen bei duplizierten Bildschrim
 
Zitat:

Zitat von Delphi_Rainer (Beitrag 1477453)
Delphi gibt mir bei dieser Einstellung nur einen Monitorcount = 1 zurück :(

Du hast doch die (m.E. wahrscheinliche) Antwort:
Über normale WinAPI hast du nur einen Bildschirm.
Du müsstest hoffen ob es auf "unterer OS"-Ebene andere Infos gibt.

Aber je "tiefer" du runter gehst, desto aufwändiger wird es und je inoffizieller diese API ist, desto öfter könnten Windows-Updates eine Implementierung kaputt machen.

himitsu 18. Nov 2020 11:38

AW: Bildschirm erkennen bei duplizierten Bildschrim
 
Die Monitore Anzeigegeräte sind zwar getrennt,
aber ja, auf unserer Ebene ist es nur ein "Monitor" (gemeinsamer Ausgabebereich),
dennoch sind die Eingabegeräte unterschiedlich.

Das ist wie als wenn man zwei Mäuse angesteckt hat. (es kann mehrere Geräte geben, die dann irgendwann auf einem Zeiger zusammengeführt werden)
Auf den höheren API-Ebenen (die Messages, welche wir empfangen) hast zwar eine passenden Infos mehr, von wem was gekommt,
aber auch in den dokumentierten APIs gibt es bestimmt Ebenen/APIs, wo diese Infos noch existieren, also wo man sieht von welcher Quelle (Treiber-Instanz <- Input-Device) es kam.

Ich würde mal empfehlen in Richtung DirectInput Ausschau zu halten.


Ein Anfang zum Suchen:
https://docs.microsoft.com/en-us/win...-input-devices
https://docs.microsoft.com/de-de/win...-input-devices
https://docs.microsoft.com/de-de/win...-input-devices
https://groups.google.com/g/comp.os..../c/6d1W1VEPa_Q

Bernhard Geyer 18. Nov 2020 16:23

AW: Bildschirm erkennen bei duplizierten Bildschrim
 
Hast du auch gefragt wie viel Geld dem Kunden das wert ist,
bevor du hier weiter einsteigst?. Das kann schon ziemlich aufwändig werden.

Redeemer 18. Nov 2020 21:14

AW: Bildschirm erkennen bei duplizierten Bildschrim
 
Kann man das Bild von Monitor 1 nicht softwareseitig auf Monitor 2 zeichnen?

Moombas 23. Nov 2020 09:12

AW: Bildschirm erkennen bei duplizierten Bildschrim
 
Bei einer Duplizierten Anzeige, hast du natürlich Monitor Count = 1, da die Anzeige nur gespiegelt wird.

Du müsstest hier einen relativ aufwändigen weg gehen:
1. Anzeige als Erweitert einstellen. (Müsste Monitorcount =2 zur Folge haben)
2. Wenn das Programm startet und Monitorcount >1,
a) Eine Zweite Instanz des Programms auf dem 2. Monitor darstellen. (Ggf. mit einer Art "WorkID" arbeiten, um die Eingaben strikt zu trennen).
b) Eine Zweite Eingabemaske des Programms auf dem 2. Monitor darstellen. (Ggf. mit einer Art "WorkID" arbeiten, um die Eingaben strikt zu trennen).
3. Dadurch unterscheidest du die Eingaben.

Probleme wirst du haben, wenn: Auf beiden Monitoren gleichzeitig Eingaben getätigt werden (beide drücken gleichzeitig auf den Touch zur selben Zeit), das musst du aber testen ob dadurch Konflikte entstehen.

himitsu 23. Nov 2020 12:20

AW: Bildschirm erkennen bei duplizierten Bildschrim
 
Wenn nicht zeitgleich an beiden Monitoren/Eingabegeräten gearbeitet wird, dann wird es einfacher.
Das Fenster doppelt (je Monitor) und nur bei der Tastatur muß man aufpassen, dass nicht grade das andere Fenster den Fokus hat (vorher einmal ins Fenster klicken oder eine Erkennung der Quelle und automatische Fokusierung des richtigen Fensters).


Wie schon gesagt.
Entweder mußt du auf tieferen Ebenen auf Eingaben reagieren, also dort wo du die Quelle der Inputs unterscheiden kannst, damit jedes Fenster auf eine andere Touch/Maus/Tastatur reagieren kann.

Oder man nehme einen billigsten MiniPC, auf dem ein RDP-Client läuft und sich in eine zweite Session auf dem PC einloggt.
Das Programm also zwei Mal gestartet, je in einer eigenen Session auf einem der Monitore.

Oder (hier macht die Trennung der Eingabegeräte/Anzeigen ein anderes System und nicht du selber)
https://de.wikipedia.org/wiki/Mehrplatzrechner
Im Linux isses einfacher. Dort kann man wohl eine X-Session mehrfach starten, auf nur einem der Monitor anzeigen lassen, und jeder Sizung eine andere Maus/Tastatur/Touchgerät zuweisen.

Moombas 24. Nov 2020 07:55

AW: Bildschirm erkennen bei duplizierten Bildschrim
 
Wie himitsu und co. bereits geschrieben haben, musst du immer eindeutig identifizieren von welchem Eingabegerät die Eingabe kommt und zu welchem "Arbeitsplatz" dieses gehört um die Eingabe entsprechend zu "routen". Ich denke das hört sich noch einfacher an als es in Wirklichkeit dann ist.

Alternativ, falls dir das zu aufwendig ist, gibt es bereits eine Software die so etwas wohl kann: http://www.thinsoftinc.com/index.aspx


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz