Hallo Reinhard,
ich habe den Namen „GetAsciiKey“ beim Schreiben „erfunden“.
Wie es genau heißt weiß ich nicht, aber ich glaube zu wissen
als 2ten und 3ten Parameter konnte man noch auswerten ob
Shift, Ctrl gedrückt wurde.
Ja, das geht mit GetAsyncKeystate. Du kannst auch verschiedene Tasten gleichzeitig auswerten. Das ist keine reaktion auf einen Tastendruck, sondern eine Prüfung einer bestimmten Taste, ob die frei ist, gedrückt wurde oder gehalten wird. Asynchron, weil die Prüfung auch noch erfolgreich verläuft, wenn geprüft wird und die Taste inzwischen schon wieder los gelassen wurde.
Durch Einbindung dieser API Funktion wußte man genau welche
Tastenkombination gedrückt wurde und konnte daraufhin eine
Prozedur aufrufen.
Ja, geht hier.
Das war einfach.
Schwierig bis unlösbar war, dann im aufgerufenen Makro
festzuhalten in welchem Eingabezustand man gerade war als
diese Tastenkombination gedrückt wurde, ein zweites Makro zu
starten und dann wieder zum Ausgangspunkt zurückzukehren,
quasi so als ob nichts geschehen wäre.
Aha, das habe ich noch nicht versucht, stelle ich mir gar nicht so schwer vor. Nur Datenintensiv, weil man ja ständig den Zustand speichern muss.
Ich habe mit der Funktion mal ein Spiel für meine Jungs geschrieben, bei dem ein Auto mit den Cursortasten gesteuert wurde. Auf/ab - Gas und Bremse, rechts/links - Lenkung. Das muss ja auch gleichzeitig gehen, außer gleichzeitig rechts und links lenken.
Das klappt mit GetAsyncKeystate(Key) Bestens und ist ganz einfach.
Gruß, Rainer