AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Bildschirm erkennen bei duplizierten Bildschrim

Bildschirm erkennen bei duplizierten Bildschrim

Ein Thema von Delphi_Rainer · begonnen am 18. Nov 2020 · letzter Beitrag vom 24. Nov 2020
Antwort Antwort
Delphi_Rainer

Registriert seit: 24. Apr 2009
11 Beiträge
 
#1

Bildschirm erkennen bei duplizierten Bildschrim

  Alt 18. Nov 2020, 09:39
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
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Bildschirm erkennen bei duplizierten Bildschrim

  Alt 18. Nov 2020, 09:45
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.111 Beiträge
 
Delphi 12 Athens
 
#3

AW: Bildschirm erkennen bei duplizierten Bildschrim

  Alt 18. Nov 2020, 11:38
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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (18. Nov 2020 um 11:45 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Bildschirm erkennen bei duplizierten Bildschrim

  Alt 18. Nov 2020, 16:23
Hast du auch gefragt wie viel Geld dem Kunden das wert ist,
bevor du hier weiter einsteigst?. Das kann schon ziemlich aufwändig werden.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.015 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Bildschirm erkennen bei duplizierten Bildschrim

  Alt 18. Nov 2020, 21:14
Kann man das Bild von Monitor 1 nicht softwareseitig auf Monitor 2 zeichnen?
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Bildschirm erkennen bei duplizierten Bildschrim

  Alt 23. Nov 2020, 09:12
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.
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.111 Beiträge
 
Delphi 12 Athens
 
#7

AW: Bildschirm erkennen bei duplizierten Bildschrim

  Alt 23. Nov 2020, 12:20
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (23. Nov 2020 um 12:26 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Bildschirm erkennen bei duplizierten Bildschrim

  Alt 24. Nov 2020, 07:55
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
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:03 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