![]() |
sendmessage an ein Fremdprogramm löst dort kein Event aus
Hallo,
mein Problem ist folgendes; ich möchte in ein Editfeld eines anderen Programms schreiben. Das klappt auch soweit, allerdings verarbeitet das fremde Programm diese Eingabe nicht so, als wenn ich den Text manuel eintragen würde. Ich habe das ganze so versucht:
Delphi-Quellcode:
Habe das ganze auch mit WM_COPYDATA versucht, allerdings ohne Erfolg:
s := 'random';
For i := 1 to Length(s) do begin SendMessage(hwnded2, WM_CHAR, Word(s[i]), 0); end;
Delphi-Quellcode:
var
aCopyData: TCopyDataStruct; p: PChar;
Delphi-Quellcode:
Ich möchte den Tastendruck nicht über Keydown simulieren, sondern über Sendmessage senden. Kennt jemand einen Grund für mein Problem?p := 'random'; with aCopyData do begin dwData := 0; cbData := StrLen(p) + 1; lpData := p; end; SendMessage(hwnded2, WM_COPYDATA, Longint(Handle), Longint(@aCopyData)); end; |
Re: sendmessage an ein Fremdprogramm löst dort kein Event au
Zitat:
|
Re: sendmessage an ein Fremdprogramm löst dort kein Event au
Zitat:
Zitat:
|
Re: sendmessage an ein Fremdprogramm löst dort kein Event au
Zitat:
Es "steht" nur da, ohne, dass das Programm merken würde, dass es eben da steht. Hab es eben nochmal mit:
Delphi-Quellcode:
Probiert, hat aber auch nur in soweit geklappt, dass der Text dort stand, aber nicht verarbeitet wurde.for lCount := 1 To Length(AText) Do begin lScanCode := VkKeyScan(AText[lCount]); lWithShift := lScanCode and (1 shl 8) <> 0; PostMessage(hwnded2, WM_KeyDown, lScanCode, 0); end; |
Re: sendmessage an ein Fremdprogramm löst dort kein Event au
Ich vermute das kein EM_CHANGE ausgelöst wird. Frag mich aber bitte nicht warum nicht.
|
Re: sendmessage an ein Fremdprogramm löst dort kein Event au
Schau dir doch mal mit MS Spy an welche Events das Edit-Control bekommt und bilde dieses nach. Evtl. ist es nötig das das Control auch den Focus hat.
|
Re: sendmessage an ein Fremdprogramm löst dort kein Event au
Zitat:
Habs schon mit diversen klicks in und aus dem Editfeld versucht, vergeblich. |
Re: sendmessage an ein Fremdprogramm löst dort kein Event au
Welche Art von Programm ist es. Es gibt programm (Virenscanner, Firewall, ...) welche solche Art von Fernbedienung durch eigene Schutzmechanismen (z.B. Prüfung von KeyStates etc...) verhindern.
|
Re: sendmessage an ein Fremdprogramm löst dort kein Event au
Dein Ansatz mit WM_KEYDOWN ist vermutlich sogar richtig.
Kann aber sein, daß du danach auch noch ein WM_KEYUP benötigtst, da das Programm erst auf ein Keyup reagiert, was es bei dir nie bekommt. |
Re: sendmessage an ein Fremdprogramm löst dort kein Event au
Zitat:
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz