C++ WINAPI: Verwendung von SendMessage/PostMessage WM_KEYDOWN lparam

Als ein amateur, der etwas niedriger als VB/VBS, C++ WINAPI ist ein Alptraum für jemanden, der meine Erfahrung) ich habe keine Ahnung, wie man über den Bau der long lParam für eine einfache KEYDOWN-Nachricht in C++ und haben wahrscheinlich verbrachte mehr Zeit mit der Suche für eine anständige Erklärung als Wert ist, würde jemand in der Lage sein, genau zu beschreiben, wie das geht?

Scheint es, dass fast jede Antwort auf diese Frage in anderen Foren wurde "warum" oder "verwenden von SendInput statt", ohne wirklich die Frage zu beantworten; ich vermute, dass es viel zu elementar für die Menschen zu erklären. Jedenfalls hier die Beschreibung aus der msdn-Website, würde es sehr schätzen, eine anständige Erklärung oder link zu einem, und einem Beispiel, wenn möglich:

Die Anzahl der Wiederholungen, scan-code,
erweitert-Schlüssel-flag, Kontext, code,
zurück-Taste-Status-flag, und
transition-state flag, wie abgebildet...

0-15 Die Anzahl der Wiederholungen für die aktuelle
Nachricht. Der Wert ist die Anzahl der
mal die Tastenkombination autorepeated als
Ergebnis der Benutzer bei gedrückter
Schlüssel. Wenn der Tastenanschlag ist gehalten lange
genug, mehrere Nachrichten gesendet werden.
Jedoch, die Anzahl der Wiederholungen ist nicht
kumulativ. 16-23 Den scan-code. Die
Wert hängt von der OEM.

24 Gibt an, ob der Schlüssel ein
extended key, wie der rechten hand
ALT-und STRG-Tasten angezeigt, die auf eine
erweiterte 101 - oder 102-Tasten-Tastatur. Die
Wert ist 1, wenn es eine extended key;
ansonsten ist es 0. 25-28 Vorbehalten;
nicht verwenden

29 Der Kontext-code. Der Wert ist 1, wenn
die ALT-Taste gedrückt, während die Taste
gedrückt wird; es ist 0, wenn die WM_SYSKEYDOWN
Nachricht ist geschrieben, um das aktive Fenster
weil kein Fenster hat die Tastatur
den Fokus.

30 Der Vorherige Schlüssel Zustand. Der Wert
ist 1, wenn die Taste nach unten, bevor der
Nachricht gesendet wird, oder es ist 0, wenn der Schlüssel
ist.

31 Der übergang Zustand. Der Wert ist
immer 0 für eine Nachricht WM_SYSKEYDOWN.

Verwenden SendInput statt. Wirklich. Eine Frage stellen über Sie, wenn Sie es nicht glauben.
War hauptsächlich daran interessiert, SendMessage für das handling von Dialogfeldern bei der Automatisierung von GUI-Schnittstellen für repetitive Aufgaben (zB. hinzufügen/aktualisieren von Datensätzen in einer Datenbank gesteuert, die von einem CMS, dass nicht ermöglichen den direkten Zugriff auf die SQL-Datenbank); idealerweise sollte dies getan werden könnte, ohne Gefahr, zu verlieren, konzentrieren, damit man nicht den gesamten computer besetzt. Nicht haben eine starke coding hintergrund schien es so zu sein, das einfachste/sicherste Weg der Handhabung input type="file" - Elemente, anstatt ein Formular direkt

InformationsquelleAutor Neville Shaun Ng | 2010-10-23

Schreibe einen Kommentar