PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suche Code wo man Taste ein Buchstabe in Word oder so eingibt


THUNDERDOMER
2008-07-25, 17:42:34
Ich suche eine Programmiercode für Visual Basic 2005 (jaja dass es veraltet ist, aber ich muss) wo man wenn ich die Taste (z.b. Button1 oder Taste als Grafik) drückst und dann ein Buchstabe in Word oder Textprogramm erscheint.

Ich möchte gern Virtuelle Tastatur in anderen Tastenanordnung selber programmieren.

Wie lautet die Befehl wenn ich die Taste-Button z. b. A drückst dann Textprogramm oder Word ebensfalls A erscheint?

Danke! (ich bin Anfängerin)

Sorry wegen meine Grammatik :(

Markus89
2008-07-25, 18:29:45
Moin,

du kannst dazu ganz einfach SendKeys benutzen. Das Problem dabei ist, dass das Fenster (Word, Textprogramm) aktiv sein muss.

Hier ist aber beides erklärt: http://www.vbarchiv.net/commands/SendKeys.php

Markus

THUNDERDOMER
2008-07-25, 18:48:09
Moin,

du kannst dazu ganz einfach SendKeys benutzen. Das Problem dabei ist, dass das Fenster (Word, Textprogramm) aktiv sein muss.

Hier ist aber beides erklärt: http://www.vbarchiv.net/commands/SendKeys.php

Markus

Das ist ja für ältere Visual Basic 4, 5, 6 und nicht 2005?

Gibt es noch andere Befehle?

Ich möchte dass Virtuelle Eingabemthode aktiv ist, um Text einzugeben, wie bei echte Virtuelle Tastatur. Virtuelle Eingabe ist immer im Vordergrund.

Monger
2008-07-25, 19:17:11
"SendKeys" macht genau das selbe wie die Tastatur - das heißt aber eben auch, dass das Fenster im Vordergrund sein muss, in das getippt werden soll.

Du solltest die Methode unter "My.Keyboard.sendKeys()" oder so ähnlich finden. Wie man allerdings die eigene Anwendung in den Vordergrund zwingt, und gleichzeitig sicherstellt dass bei Eingabe der Focus auf dem anderen Fenster sitzt... sorry, da bin ich gerade überfragt. Ich weiß, dass es etwas gibt was sich MSAA/ACC nennt, und mit denen fremde Applikationen quasi fernsteuern kann... das ist aber gar nicht mal so trivial, und ist nicht direkt Bestandteil von .NET . Ich gehe mal schwer davon aus, dass es für dich auch eine leichtere Lösung geben muss.

Übrigens: Visual Basic (oder wie es richtig heißt: VB.NET) 2005 ist doch nicht veraltet??? Wie kommst du denn darauf?

THUNDERDOMER
2008-07-25, 19:22:57
"SendKeys" macht genau das selbe wie die Tastatur - das heißt aber eben auch, dass das Fenster im Vordergrund sein muss, in das getippt werden soll.

Du solltest die Methode unter "My.Keyboard.sendKeys()" oder so ähnlich finden. Wie man allerdings die eigene Anwendung in den Vordergrund zwingt, und gleichzeitig sicherstellt dass bei Eingabe der Focus auf dem anderen Fenster sitzt... sorry, da bin ich gerade überfragt. Ich weiß, dass es etwas gibt was sich MSAA/ACC nennt, und mit denen fremde Applikationen quasi fernsteuern kann... das ist aber gar nicht mal so trivial, und ist nicht direkt Bestandteil von .NET . Ich gehe mal schwer davon aus, dass es für dich auch eine leichtere Lösung geben muss.

Übrigens: Visual Basic (oder wie es richtig heißt: VB.NET) 2005 ist doch nicht veraltet??? Wie kommst du denn darauf?

Es gibt schon Visual Basic 2008.

Monger
2008-07-25, 19:25:55
Es gibt schon Visual Basic 2008.
Der Unterschied ist minimal, an der Sprache selbst - und auch an der Oberfläche - hat sich praktisch nichts geändert. Auf Arbeit bin ich froh, dass ich überhaupt mit Visual Studio 2005 schon arbeiten darf. So mancher Kollege hatte da weniger Glück! ;)

THUNDERDOMER
2008-07-25, 19:28:58
Der Unterschied ist minimal, an der Sprache selbst - und auch an der Oberfläche - hat sich praktisch nichts geändert. Auf Arbeit bin ich froh, dass ich überhaupt mit Visual Studio 2005 schon arbeiten darf. So mancher Kollege hatte da weniger Glück! ;)

Ok, ich kann weiterhin Visual Studio 2005 nutzen.

Kannst du mir den Code genauer schreiben?

Button_1 -> wäre taste a

Wie gebe ich richtig ein, bis auf dem bildschirm a erscheint? Sorry, ich bin Anfängerin und brache Sicher :(

Wäre schön wenn du mir einfacher erklährt :)

RattuS
2008-07-26, 02:11:36
Um den Fokus auf ein anderes Programm zu setzen bzw. dort WindowsMessages (WM_) auszuführen, müsstest du hooken. Ich bezweifle, dass das ohne umständlichen API-Import funktioniert. Das .NET bietet dafür auf jeden Fall keine Funktion (bisher).

THUNDERDOMER
2008-07-26, 15:15:55
Hab alles ausprobiert, ich raffe hooken und string nicht so richtig. Es kommt immer blaue Schlangenlinie :(

Bitte erstell mal Form_1 mit Button_1 mit Programmiercode (Projekt speichern)und dann per Mail schicken, damit ich da reinschauen kann. Es soll von VB2005 erstellt sein. Button_1 soll als Taste a sein. Ich kann ja weiteres hinzufügen.

Danke!!

Monger
2008-07-26, 16:01:57
Ich hab selber mal versucht, mich ein bißchen schlau zu machen wie man so etwas denn tun könnte. Was ich aber herausfinden konnte, war eher ernüchternd.

Das Problem ist, dass eine Bildschirmtastatur etwas ganz untypisches tut: sie lehnt den Fokus ab. Damit ein Fenster das tut, muss man ziemlich tief in den Eingeweiden von Windows rumwühlen... willst du dir das wirklich antun? Möchtest du nicht lieber einfach die Windows-Bildschirmtastatur nehmen? ;)

THUNDERDOMER
2008-07-26, 17:06:13
Ich hab selber mal versucht, mich ein bißchen schlau zu machen wie man so etwas denn tun könnte. Was ich aber herausfinden konnte, war eher ernüchternd.

Das Problem ist, dass eine Bildschirmtastatur etwas ganz untypisches tut: sie lehnt den Fokus ab. Damit ein Fenster das tut, muss man ziemlich tief in den Eingeweiden von Windows rumwühlen... willst du dir das wirklich antun? Möchtest du nicht lieber einfach die Windows-Bildschirmtastatur nehmen? ;)

Nein, ich will Spezielle Eingabemethode entwickeln für TabletPC. Wie z. b. Fitaly oder MessagEase.

Ich brauche aber die Code und ich kapier nicht. Bitte erstell doch mal Form_1 mit Button_1 mit eingabebefehl. Damit ich reinschauen kann.

Mein eigene Screenshot:

http://s5.directupload.net/file/d/1502/cyq26wni_jpg.htm

Monger
2008-07-26, 18:09:48
Ich brauche aber die Code und ich kapier nicht. Bitte erstell doch mal Form_1 mit Button_1 mit eingabebefehl. Damit ich reinschauen kann.

Um es nochmal überdeutlich zu sagen: ich habe keine Lösung!

Ich habe irgendwas gelesen, dass man bestimmte Methoden in den Oberklassen einer Form überschreiben kann (Window, oder UIControl), aber das werde ich jetzt nicht nachbauen. Da müsste ich jetzt erstmal ne Menge Zeit investieren, um das zu verstehen.

Wenn dein Englisch brauchbar ist, würde ich dir empfehlen direkt in den Technet Foren von Microsoft nachzufragen. Da sitzen die echten Experten.

THUNDERDOMER
2008-07-26, 18:11:37
Um es nochmal überdeutlich zu sagen: ich habe keine Lösung!

Ich habe irgendwas gelesen, dass man bestimmte Methoden in den Oberklassen einer Form überschreiben kann, aber das werde ich jetzt nicht nachbauen. Da müsste ich jetzt erstmal ne Menge Zeit investieren, um das zu verstehen.

achso :(

Dann klappt wohl nicht bei Visual Basic. Aber vielleicht Visual c++? Ich besitze Visual Basic, Visual C# und Visual C++ und Eclipse.

Mist, ich muss noch so viel üben... bis alles klappt. Obwohl ich gerne Eingabemethode programmieren wollte. :(

Für PDA programmiere ich das, und zwar hier meine eigene Screenshot: (hab selbst gemacht, aber für PC schlug fehl beim programmieren)

http://s4.directupload.net/images/080726/xlmkgj8e.jpg