Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Datumsauswahl anzeigen

Begonnen von gsaccess, April 04, 2024, 15:41:16

⏪ vorheriges - nächstes ⏩

gsaccess

In der Anlage noch die Testdatei mit dem importierten Modul und dem Code
    If Not Keyboardstate.Numlock Then
        Keyboardstate.Numlock = True
    End If
beim Verlassen von Arbeitstag.

Ich hoffe ich habe das richtig verstanden.
Günther

PhilS

Zitat von: gsaccess am Mai 02, 2024, 10:40:59Ich hoffe ich habe das richtig verstanden.
Ja, du hast das richtig verstanden.

Danke für deine Testdatei.
Ich kann das von dir beschriebene Verhalten nachvollziehen. :-/

Hier gibt es tatsächlich ein Problem mit meinem Klassenmodul. Es liegt kein Fehler unmittelbar in dem Klassenmodul selbst vor, sondern die verwendete Windows-API-Funktion GetKeyboardState liefert teilweise(?) falsche Ergebnisse, wenn der NUMLOCK-Zustand durch SendKeys ("%{DOWN}") geändert wurde.
Das gilt analog ebenso für die GetKeyState und GetAsyncKeyState APIs.

Nach einer ersten Recherche ist mein Verdacht, dass in den problematischen Situationen der globale Zustand des Keyboards und die Kopie dieses Zustands für den aktuellen Thread nicht übereinstimmen.

Für weitere Schlussfolgerungen und eventuelle Lösungsansätze brauche ich etwas mehr Zeit.
 
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

gsaccess

Vielen Dank für deine Rückmeldung. Ich bin schon gespannt ob es dazu wirklich eine Lösung gibt.
Günther

Trombomaniac