Key click Simulation

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
KUser
Beiträge: 11
Registriert: Mo 20. Okt 2008, 09:29

Key click Simulation

Beitrag von KUser »

Hi,

da ich noch kein Thema über die Suche gefunden hab, beginne ich es mal:

Ich möchte keinen Buttonklick simulieren, indem einem Handle eine Nachricht sende, sondern ich möchte einen Keyclick/-pressed simulieren.

Wenn ich besipielsweise einen Buttonklick auslöse, soll dieser via SendMessage (PostMeesage) ein Keyup/down senden und welcher es sein soll.

Code: Alles auswählen

SendMessage(PageControl1.Handle, LM_KEYDOWN, VK_LEFT ,VK_LEFT);
(Alternativ mit LM_SYSKEYDOWN, CN_KEYDOWN)
Der Aufruf zeigt leider keine Wirkung.

Gruß

Poelser
Beiträge: 55
Registriert: Do 6. Nov 2008, 14:16
OS, Lazarus, FPC: Windows Vista (L 1.0.6 FPC 2.6.0)
CPU-Target: Intel 32 Bit/Arm

Re: Key click Simulation

Beitrag von Poelser »

Ich hab' zwar nicht so richtig verstanden, wozu das gut sein soll, aber probier's mal mit PageControl1.Perform().

CU, der Poelser

KUser
Beiträge: 11
Registriert: Mo 20. Okt 2008, 09:29

Re: Key click Simulation

Beitrag von KUser »

geht nicht.

wenn ich zum beispiel einen buchstaben-key über eine keyup/down-message an ein memo sende, sollte er ihn auch schreiben. wenn der focus auf einem tabsheet ist und ich ein vk_left sende, sollte der focus weiter gehen...
all das geht grad nicht.

Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Re: Key click Simulation

Beitrag von theo »

Kannst du mal sagen, wozu du das machen willst? Das hilft meistens beim helfen... ;-)

KUser
Beiträge: 11
Registriert: Mo 20. Okt 2008, 09:29

Re: Key click Simulation

Beitrag von KUser »

später werden an ein programm tastatur codes gesendet. da die api bereits auf keys meiner angeschlossen tastatur reagiert, als beispielsweise dass der editor einen buchstaben schreibt, wenn ich ihn tippe, oder ich durch reiter mit pfeil-links/rechts wechseln kann.

an dieser stelle wird mir nun die tastatur weggenommen, so dass ich einen tastendruck simulieren möchte. beispielsweise drücke ich nen button in einem window, der solch ein event vorerst startet.

hab zufällig festgestellt, dass mein tastaturfocus noch nicht mal auf dem objekt liegt, dem ich ihn eigetnlich gegeben habe.. also per setfocus()

hmmm... naja vielleicht hilfts euch jetzt auch weiter ;)

Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Re: Key click Simulation

Beitrag von theo »

Wir hatten hier so ein ähnliches Thema http://www.lazarusforum.de/viewtopic.php?f=16&t=2408" onclick="window.open(this.href);return false;
Befriedigt aber nicht wirklich.

KUser
Beiträge: 11
Registriert: Mo 20. Okt 2008, 09:29

Re: Key click Simulation

Beitrag von KUser »

das mit dem focus hat sich erledigt. verhält sich etwas seltsam, aber geht wohl.

tut mir leid, die referenz ist nicht so hilfreich...

ich frage mich nur, ob ich bei SENDMESSAGE(recievingHandler, someMsg, WParam, LParam) den WParam korrekt setzte, wenn ich ihm nur den Wert VK_LEFT mitteile und/oder der LParam dies auch wissen muss...

Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Re: Key click Simulation

Beitrag von theo »

KUser hat geschrieben: tut mir leid, die referenz ist nicht so hilfreich...
War auch eher als Abschreckung gedacht ;-)

Ich weiss nicht Sendmessage unter Lazarus überhaupt funktioniert. Ist doch eher Winapi.
Ich kann dir da nicht helfen.

KUser
Beiträge: 11
Registriert: Mo 20. Okt 2008, 09:29

Re: Key click Simulation

Beitrag von KUser »

ja das ist richtig, ist winapi, aber, ich glaub, es ist die unit lclintf, die send- und postmessage ermöglichen. hat soweit auch funktioniert, wenn ich irgendwelche anderen events sende, wie mausklick oder ähnliche. nur leider erziele ich keine effekte durch nachrichten, wie lm_keydown oder ähnliche. also diejenigen, die sich auf das keyboard beziehen.

nicht weiter wild, es lesen ja noch andere diesen thread und können vielleicht helfen ;)

Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Re: Key click Simulation

Beitrag von theo »

Da das wahrsch. sowieso höchstens auf Windows laufen wird, kannst gleich Windows und Messages einbinden und dich in Winapi Foren schlau machen.
Vielleicht musst du dich auch noch in die Message Queue einhängen. K.A.
z.B.http://entwickler-forum.de/showthread.php?t=37067" onclick="window.open(this.href);return false;

Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Re: Key click Simulation

Beitrag von theo »

Hab zufällig noch was gefunden.
Im <lazdir>/components/mouseandkeyinput/
hat sich tatsächlich einer die Mühe gemacht. Sieht nicht schlecht aus.

Antworten