Forum: PC-Programmierung Touchscreenauswertung über C#


von klausi (Gast)


Lesenswert?

Hallo Forum!

Ich habe da ein kleines Problem, ich hoffe es ist klein!

in meinem Gartenhaus habe ich ein Display das mir den Gesamtzustand von 
dem Häuschen anzeigt. Dieses Programm läuft aber nicht im Windows 
sondern wird in einer Console ausgeführt (Fullscreen). Ich habe jetzt 
den Computer gegen eine Shuttle PC ausgetauscht. Nun mein Problem: Unter 
Windows funktioniert der USB- Touch super, aber wie kann ich in einer 
Console abfragen wo gerade der Touch berührt wird ?

Danke für euro Hilfe !

von Peter II (Gast)


Lesenswert?

klausi schrieb:
> Nun mein Problem: Unter
> Windows funktioniert der USB- Touch super, aber wie kann ich in einer
> Console abfragen wo gerade der Touch berührt wird ?

sollte doch wie ein normales MausEvent sein.

Eventuell hilft auch das weiter:
http://msdn.microsoft.com/de-de/magazine/ee336016.aspx

von klausi (Gast)


Lesenswert?

Hallo!

Leider gibt es bei der Console kein MausEvent ...


lg

von Peter II (Gast)


Lesenswert?

klausi schrieb:
> Leider gibt es bei der Console kein MausEvent ...

wie kann man denn auf der console etwas darstellen? Text? Oder meinst du 
eine Vollbild anwendung?

Console != Vollbild anwendung

von klausi (Gast)


Lesenswert?

Es gibt keinen Mauszeiger....

Zuerst war es nur eine Anzeige, nun habe ich Buttons (Nur Grafiken) 
eingefügt wo ich die Koordinaten vom Touch-Click benötige. Ich habe es 
schon versucht mit Cursor-Position(Maus) und klick abfrage aber da es 
keine Maus gibt muss ich mich direkt mit dem touch verbinden oder gibt 
es eine eigene class für touch-Displays ?

lg

von Arc N. (arc)


Lesenswert?

klausi schrieb:
> Es gibt keinen Mauszeiger....
>
> Zuerst war es nur eine Anzeige, nun habe ich Buttons (Nur Grafiken)
> eingefügt wo ich die Koordinaten vom Touch-Click benötige. Ich habe es
> schon versucht mit Cursor-Position(Maus) und klick abfrage aber da es
> keine Maus gibt muss ich mich direkt mit dem touch verbinden oder gibt
> es eine eigene class für touch-Displays ?
>
> lg

Wie man's nimmt, es gibt WM_TOUCH
http://msdn.microsoft.com/en-us/library/windows/desktop/dd317341(v=vs.85).aspx

von Sebastian-L (Gast)


Lesenswert?

Also
1. weißt du nicht was ein touchscreen ist.
2. Bist du zu faul zum testen

Ein touchscreen ist ein bildschirm +maus für den pc. Aber dazu sollte 
man in der lage sein eine bedienungsanleitung zu lesen
 Mfg

von klausi (Gast)


Lesenswert?

Guten Morgen lieber Sebastian-L,

Ich glaube du hast mich nicht verstanden ! Wenn ein Programm in der 
Console Fullscreen ausgeführt wird gibt es keinen Mauszeiger, daher 
möchte ich eine Verbindung direkt zum Touchcontroller aufbauen.

Ein Touch-Klick über einen Mausevent bzw die Position ist einfach 
auszulesen, aber da muss die Oberfläche (Desktop) von Windows da sein...

Beschreibung habe ich gelesen aber auf dieses Thema wird nicht 
eingegangen es gibt auch keine DLL

> 2. Bist du zu faul zum testen
Ne kann ich mir nicht vorstellen , Wenn du mir sagst wie ich auf die 
Hardware zugreifen kann dann werde ich es testen...

von Peter II (Gast)


Lesenswert?

klausi schrieb:
> Wenn ein Programm in der
> Console Fullscreen ausgeführt wird gibt es keinen Mauszeiger, daher
> möchte ich eine Verbindung direkt zum Touchcontroller aufbauen.

wir haben immer noch nicht verstanden was das für ein Programm ist? Ist 
es eine Win32 Anwendung?

Beschreibe doch mal was du mit console uns fullscreen meinst.

von klausi (Gast)


Lesenswert?

Beim Start der Visualisierung wird eine Consolenanwendung ausgeführt die 
den ganzen Bildschirm nutzt.(andere Auflösung als Windows, so wie das 
Spiel Doom1). Das Programm ist in C geschrieben.

In diesem Programm habe ich Bilder eingebaut die aussehen wie Buttons. 
Nun würde ich gerne einen Programm in C#/WPF schreiben dass den Werte 
vom Touch einlesen kann und die dann über Sendkeys an das C-Programm 
sendet (nicht direkt an das Programm sondern einen KeypressEvent in der 
Console auslöst)

Sobald die Visu läuft ist Windows im Hintergrund und nicht mehr zu sehen 
( Console "Alt+Enter" ) somit gibt es keinen MausEvent mehr.

Das Progi in C# habe ich schon fertig, es funktioniert im Desktop zu 
100% aber nicht mehr wenn die Console gestartet wird. -- keine Maus

von Peter II (Gast)


Lesenswert?

dein C# Programm hilft da aber nicht weiter, du musst das C Programm 
anpassen.

Hier steht einiges dazu:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms682079%28v=vs.85%29.aspx

Aber einfacher ist es vermutlich eine Normales Windows programm mit C# 
zu schreiben und das ganze als Vollbild laufen zu lassen.

von klausi (Gast)


Lesenswert?

Ich bin eh schon knapp davor das Programm neu zu schreiben aber wenn es 
geht würde ich es lieber lassen.

Gibt es nicht die Möglichkeit den Touch zu sniffen und die Daten dann zu 
verarbeiten ?

von Peter II (Gast)


Lesenswert?

klausi schrieb:
> Gibt es nicht die Möglichkeit den Touch zu sniffen und die Daten dann zu
> verarbeiten ?

ich vermute es meldet sich als HID. Dann sollte es damit gehen:

http://msdn.microsoft.com/en-us/library/ms645543.aspx

von Marc (Gast)


Lesenswert?

Hallo! Ich suche auch schon seit langem so eine Möglichkeit, gibt es wo 
einen Sourcecode damit ich mir ein wenig abschauen kann ich bin nicht 
der beste c# programmierer...


Danke!

von klausi (Gast)


Lesenswert?

Hallo Marc, ich bin selber gerade dabei es zu programmieren... Ist nicht 
so einfach !

von Borislav B. (boris_b)


Lesenswert?

Hi Marc!
So lange du nicht das selbe komische "Konsolenprogramm" wie klausi 
benutzt ist es GANZ EINFACH ;-)
Da liefert der Touchscreen ganz normale Mausevents, du brauchst also 
eigentlich garnichts spezielles programmieren...

von Mike M. (mikeii)


Lesenswert?

Ich hoffe das ist jetzt nicht frech wenn ich sage, warum nicht in C# 
"neu" schreiben, als Fenster ausführen ohne Border und Kopfleiste, auf 
Bildschirmauflösung bringen und fertig?
Mit WPF kannst du dann noch deine Buttons schön verzieren, wenn es das 
braucht.
Und dann kannst du den Touchscreen als normale "Maus" verwenden, wobei 
du den Mauszeiger beim Hovern über dem Fenster gegen einen "blanken" 
austauschen kannst.
Die Maus und Touchscreen geschichte wäre ein minimaler Aufwand.
Wie groß der Aufwand von deinem restlichen Programm ist, ist die andere 
Sache.

von Mike M. (mikeii)


Lesenswert?


von Lukas K. (carrotindustries)


Lesenswert?

Der TO hat schon eine Win32-Anwendung vor sich, die eben in der Konsole 
läuft. Wenn ich mich recht entsinne, war die edit.com in der Konsole bei 
Windows XP mit der Maus bedienbar; irgendwie müssen die Maus-Ereignisse 
wohl in die Konsole gelangen. Überprüfen kann ich das gerade leider 
nicht, da kein Windows XP vorhanden; bei Windows 2000 geht's nicht, beim 
der Windows 8 public beta fehlt die edit.com zum Ausprobieren.

von Mike M. (mikeii)


Lesenswert?

Meiner Meinung nach über den RawInput, das sollte am einfachsten sein

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.