Entwickler-Ecke

Windows API - Probleme mit SendMessage??


jackie05 - Di 09.12.08 02:11
Titel: Probleme mit SendMessage??
Hallo,
ich möchte in einem externen Programm etwas ins Edit eintragen, das funktioniert soweit, das Problem ist nur, das er nicht Returned.

Hier mal der Code:

Delphi-Quelltext
1:
2:
SendMessage(wndChild, WM_SETTEXT, 0, Integer(PChar(Edit3.Text)));
SendMessage(wndChild, VK_RETURN, 00);


Habe ich vieleicht etwas falsch gemacht?

Danke euch schonmal im Voraus.

MfG


Nersgatt - Di 09.12.08 08:20

Du kannst nicht einfach ein VK_RETURN schicken. Du musst eine Message mit WM_KEYDOWN (http://msdn.microsoft.com/en-us/library/ms646280(VS.85).aspx) mit dem entsprechenden Keycode schicken. Nicht vergessen, die Taste dann mit WM_KEYUP wieder "loszulassen".

Gruß,
Jens


jackie05 - Di 09.12.08 21:26

Danke.

Aber wie mache ich das ambesten?

MfG


jackie05 - Mi 10.12.08 01:38

Ich hab das mal so versucht:

Delphi-Quelltext
1:
2:
SendMessage(wndChild, WM_SETTEXT, 0, Integer(PChar('Test!')));
PostMessage(wndChild, WM_KEYDOWN, VK_RETURN, 0);


Er sendet zwar den Text, aber er führt kein Return aus.

Woran liegt der fehler?

MfG


jaenicke - Mi 10.12.08 01:50

Du lässt die Returntaste ja nicht mehr los, also kommt zwar OnKeyDown praktisch an, aber weder OnKeyUp noch OnKeyPress um es mit Delphi zu sagen.


jackie05 - Mi 10.12.08 15:42

Habe ich auch schon versucht und KeyUp wieder rausgenommen, da es nicht ging.


Nersgatt - Mi 10.12.08 16:03

Versuch es mal mit SendMessage, statt PostMessage.


jaenicke - Mi 10.12.08 16:08

Sollte es der OnKeyPress Handler sein, der dein Event auslöst, dann ist das bei einem Delphiprogramm die Reaktion auf WM_CHAR, vielleicht ist das bei dir auch das Richtige:

Delphi-Quelltext
1:
SendMessage(wndChild, WM_CHAR, VK_RETURN, 0);                    


jackie05 - Mi 10.12.08 20:17

Ich habe wirklich schon alles versucht, es geht einfach nicht.

So wie es aussieht, kann ich das wohl vergessen.

Aber trotzdem Danke.

MfG


jaenicke - Mi 10.12.08 20:26

Es gibt hier noch einige Möglichkeiten:
http://www.swissdelphicenter.ch/de/showcode.php?id=220

Ansonsten könntest du höchstens mal sagen welches Programm es ist, dann könnte man es mal selbst ausprobieren.