Autor Beitrag
Jens_Arpe
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Di 24.05.11 17:44 
Hi,

ich muss demnächst eine Art virtuelles Keyboard schreiben und als Sprachen stehen nur C# und C++ zur Auswahl (Windows Vista Betriebssystem). Das Programm soll folgendes machen:

Ich startet das Programm und dann z.B. Firefox. Jetzt setzte ich im Firefox den Curor in die Adresszeile. Nun wechsele ich in mein Programm in dem eine Tastatur
eigeblendet wird. Ich drücke jetzt auf Buchstaben, die dann im Firefox in der Adresszeile angezeigt werden sollen.

(Ich glaube in Windows gibts da die Eingabehilfe oder Bildschirmtastatur was genauso funktioniert) Ich muss jetzt sowas aber selber machen. Ist es überhaupt mit Standartfunktionen
die C# oder C++ zur Verfügung stellen möglich sowas zu realisieren?

mfg Jens
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 24.05.11 17:56 
Hallo und :welcome:

Direkt eine Funktion gibt es nicht dafür. ;-)

Die Frage kam aber gerade schon:
www.c-sharp-forum.de...&highlight=fokus
www.delphi-forum.de/....php?p=640246#640246
Jens_Arpe Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Di 24.05.11 21:42 
Das ist nicht direkt das selbe. Bei den Beispielen spielt sich ja alles in der eigenen Anwendung ab wenn ich das recht gesehen habe. Ich will das ganze aber über Anwendungen hinweg machen. Also z.B. mit meiner Tastatur in Word was tippen.

Aber ich denke mal, um sowas zu machen muss man die Benutzereingaben auf unterster Schicht abgreifen, ähnlich wie das bei Keyloggern der Fall ist...


Oder falls ihr KeyClone oder Octopus kennt, die Programme haben ne ähnliche Funktionalität.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 25.05.11 05:31 
Das macht keinen Unterschied. Wenn das Fenster nicht den Fokus bekommt, wird da geschrieben wo der Eingabefokus vorher war. Ob das jetzt in der eigenen Anwendung oder woanders war, spielt keine Rolle.

Und Benutzereingaben abfangen musst du gar nicht, denn die Eingaben generierst du ja selbst mit deiner Tastatur.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4796
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 25.05.11 18:46 
Hallo Jens-Arpe,

dazu erzeugst du einfach ein nicht-fokussierbares Fenster, s. www.mycsharp.de/wbb2...=3675586#post3675586
Und dann sendest du per SendMessage/PostMessage die einzelnen Tasten als WM_KEYDOWN an die aktive Anwendung (GetForegroundWindow): pinvoke.net/default....r32/SendMessage.html sowie pinvoke.net/default....oregroundWindow.html