Zeichen senden per Postmessage

desmoloch

Mitglied
hi

ich versuche Zeichen per Postmessage an ein Fenster zu senden welches keinen Focus hat. Das ist kein Problem soweit.
Die Zeichen die gesendet werden sollen, gebe ich in einer Textbox vor.
Leider verlangt ja aber Postmessage einen Virtual key code und keinen Ascii Code :/

Call PostMessage(fensterHwnd, WM_KEYDOWN, GetVirtuelKeyAsc("A"), &H0)

hab auch schon etwas zum Umwandeln in Vkeycode gefunden (GetVirtualKeycode oder so). Leider macht er dann aber konsequent alles klein, mir fehlt einfach das "shift state"! Wenn ich "!" umwandeln dann macht er ne 1 draus, A = a und a = a.

VirtualKeyCode liste:
http://msdn.microsoft.com/library/d...wsUserInterface/UserInput/VirtualKeyCodes.asp

da fehlen in der Liste auch alle Sonderzeichen! Wie kann ich denn per Postmessage alle zeichen und auch Groß/Kleinschreibung übergeben?

mfg Desmo
 
Hallo Desmo,
verstehe ich das richtig ? Du willst nur einen Ascii Text an eine Textbox senden ?
Das müsste doch mit SendMessage gehen.

Call SendMessage(TextBoxHandle, WM_SETTEXT, 0, "dein Text")

Gruß
Jens
 
JensG hat gesagt.:
Hallo Desmo,
verstehe ich das richtig ? Du willst nur einen Ascii Text an eine Textbox senden ?
Das müsste doch mit SendMessage gehen.

Call SendMessage(TextBoxHandle, WM_SETTEXT, 0, "dein Text")

Gruß
Jens

nein dann hab ich mich schlecht ausgedrückt ;)
alsooo ich habe eine Programm, welches eine Textbox hat. Der User trägt in die Box einen Satz ein: "Das ist mein Satz!" (heisst das bei VB denn auch textbox? sorry hab in letzter Zeit nur noch Java gemacht ;) )
Nun kann er ein fenster angeben (titel, das fenster wird gesucht) und der Satz den er eingegeben hat, wird in einem Zeitintervall von 1 sec immer wieder an das Fenster gesendet.
Beispiel:
User sendet an ein Word Dokument immer "Das ist mein Satz!"

Leider will aber Postmessage einen VkeyCode und keinen Ascii Code :/ Und in der KeyCode liste, gibts doch gar keine Sonderzeichen?

Kleine Info warum postmessage:
Ich habe vorher Sendkeys benutz. Dazu musste aber das Fenster immer im Vordergrund sein! Vorteil war da eben, das ich direkt den ascii code senden konnte... (Sendkey("!"))
 
Orakel hat gesagt.:
Hi Desmoloch,

schau Dir doch mal auf der Seite http://www.bigattichouse.com/thoughtbrew.php?BREWID=VB den Code an. Wenn ich Dich richtig verstanden habe, macht der das selbe, was du machen möchtest :)

Gruß
Das Orakel

ähm joah tut er!
nur mein Problem ist: Wie sende ich zum Beispiel "%" mit postmessage?
Denn Postmessage will (soweit ich das jetzt verstanden hab) einen Virtual Keycode.
In der Liste mit Virtual Keycode´s gibts das Zeichen aber net! Im grunde muss ich ihm nur sagen: Nimm Virtual Keycode 5 und Shift. Aber ich finde nichts das bei nem Virtual Keycode den Shift state darstellt?!

Ich suche schon den ganzen Tag mit google, aber ich find dazu einfach nichts! :(
 
Hi Desmo,

ich weis zwar nicht, warum Du an Deinem Postmessage kleben bleibst. Habe das Beispiel mal schnell in ein Projekt kopiert, und es funktioniert genau so wie Du es haben willst. Inklusive des Übertragens von %&/()=!aAwW usw.

Gruß
Das Orakel
 
Orakel hat gesagt.:
Hi Desmo,

ich weis zwar nicht, warum Du an Deinem Postmessage kleben bleibst. Habe das Beispiel mal schnell in ein Projekt kopiert, und es funktioniert genau so wie Du es haben willst. Inklusive des Übertragens von %&/()=!aAwW usw.

Gruß
Das Orakel

hmm das überträgt er? ist ja quasi der Code:

Code:
For i = 1 To max
   a = Mid(Msg, i, 1)
   v = Asc(a)
   SendMessage ChildHwnd, WM_CHAR, ByVal v, ByVal &H10001
 Next

und so hab ich das eigentlich auch in meinem Quellecode, mal abgesehen vom ByVal. Hast du auch mal versucht ob GROß/Kleinschreibung funktioniert?
Ich hock momentan leider an einer Workstation ohne VB, gehe aber gleich wieder an den anderen rechner.
Dann versuche ich den code mal :)
 
Er überträgt alles genauso wie es in einer Textbox eingegeben wurde. Ist die Textbox also Multiline werden sogar Zeilenumbrüche übertrgen

Gruß
Das Orakel
 
Orakel hat gesagt.:
Er überträgt alles genauso wie es in einer Textbox eingegeben wurde. Ist die Textbox also Multiline werden sogar Zeilenumbrüche übertrgen

Gruß
Das Orakel

args toll ;)
ich muss WM_CHAR und nicht WM_KEYDOWN benutzen, dann klappts :)
danke für eure Hilfe!

Aber eins musst du mir noch sagen: Wie hast du dieses Beispiel gefunden? Ich hab heute den gaaaanzen Tag gesucht! und kaum was gefunden :/
 
Gefunden ganz einfach:

1) Google
2) Suchbegriffe: Visual Basic postmessage wm_keydown

Auf Seite 2 gleich der erste Eintrag

Gruß
Das Orakel
 

Neue Beiträge

Zurück