Zitat von
SirThornberry:
Zitat:
Sendmessage braucht einfach zu lange und ist nicht schnell genug zum senden von Keys.
Kannst du das genauer erklären? Ich hätte gedacht das keybd_event langsamer ist.
Dachte keybd_event plaziert den Key weiter unten (low-level gesehen). Und von dort aus wird es dann in die MessageQueue gelegt wovon es durch die Nachrichtenschleife abgeholt wird.
SendMessage hingegen sollte nichts in der Messagequeue ablegen sondern ruft direkt die Wnd-Proc auf.
So war zumindest bisher meine Annahme/Wissensstand.
Ja ruft sie auf
Kommt aber zu spät oder zu langsam an.
In Bassvis habe ich zu anfangs auch Sendmessage ala Winamp verwendet.
Mußte aber feststellen das ohne vorrangesetzten Sleep es nicht möglich war die Daten in der Winproc zu verarbeiten.
Besonders kritisch wird das wenn die Anwendung auch noch
OpenGl Plugins zur zeit verwendet.
Habe es deshalb geändert da ich den Anwender nicht zumuten konnte 100.te von Sleeps in seinen Code zu verwenden.
EDIT:
Kann es sein das er vielleicht die Keys nicht deklariert hat ?
keys : Array[0..255] of Boolean;
SendMessage:
Diese Funktion sendet eine Nachricht an ein Entsprechendes Fenster bzw. seiner Fensterprozedure und gibt dessen Rückgabe zurück.
PostMessage:
Diese Funktion sendet eine Nachricht an ein angegebenes Fenster welche nicht an das Fenster direkt sondern an dessen Nachrichteneingangspuffer übermittelt wird wobei nicht auf eine bestätigung des Threads gewartet wird.
gruss Emil