Hallo zusammen,
es geht um Folgendes: ich würde gern eine Tastatureingabe mittels Code simulieren. Die Klasse "SendKey" bietet so eine statische Methode (Send), die allerdings nur für Windows-Anwendungen zur Verfügung steht, und ich bräuchte es für WPF-Anwendungen.
Gibt es da eine alternative Klasse in WPF, die so eine Methode besitzt? Falls nicht, ist es dann möglich ein Verweis zur System.Windows.Forms-Namespace in WPF-Anwendungen hinzuzufügen? Ich wäre für jede Antwort sehr dankbar!
Gruß, Muki
Hallo,
ist das, das was du brauchst?
social.msdn: WPF and Sendkey
As a man thinketh in his heart, so he is.
@ der-schlingel
Danke für den Link, allerdings ist diese Lösung nicht das Richtige für mein Problem 🙁 Vielleicht sollte ich es genauer beschreiben, was ich erreichen will. Also:
Ich bin dabei eine WPF-Bildschirmtastatur-Anwendung zu programmieren. Ich habe mehrere TextBlock's, die jeweils einen Buchstaben repräsentieren. Wenn ich also mit der linken Maustaste beispielsweise auf den Buchstaben 'A' drücke, dann soll dieser Buchstabe von der realen Tastatur aus simuliert und in das Steuerelement geschrieben werden, welches den derzeitigen Fokus besitzt.
Wie gesagt, für Windows-Anwendungen gibt es eine sehr einfache Methode, die das ermöglicht. Die Send-Methode der Klasse SendKey kann ich aber leider nicht in WPF-Anwendungen einsetzen 😜
Gibts dafür eine einfache Lösung?
Du könntest dir das Steuerelement holen welches gerade den Fokus hat: MSDN: Focus Overview und diesem dann, sofern es Input bekommen kannt, also bei TextBoxen ist es glaub ich Content, um das jeweilige Zeichen erweitern.
Ich weiß nicht was da Best Practice ist, aber am einfachsten ist es, wenn du mit 'is' prüfst ob es eine TextBox ist und dann darauf casten um den String entsprechend zu setzen.
As a man thinketh in his heart, so he is.
Hallo Muki,
ich würde es ebenso wie der-schlingel machen denn da hast du den Vorteil das du auch irgendwelche Sonderzeichen welche nicht auf einer Tastatur sind auf die Bildschirmtastatur geben kannst.
mfg XaN
Danke für euer Tipp! Ich hoffe, dass ich mit dieser Logik das Problem lösen kann 😁
Ich werd euch Bescheid geben, falls ich es gelöst haben sollte 😉
Edit:
Ich habe es geschafft!!! 😁 Danke nochmals für eure Ideen. Ich bin euch wirklich sehr, sehr dankbar dafür! Es sollten mehr von euch auf der Welt geben 😁