Mit VBA konnte ich unter XP ActivateKeyboardLayout aufrufen, um die Eingabesprache von Englisch auf eine andere Sprache umzustellen. Dies funktioniert jedoch nicht mehr unter Vista64.
Gibt es Vorschläge oder Umgehungsmöglichkeiten?
Der Code, der unter XP funktionierte, war ähnlich wie der folgende:
Private Declare Function ActivateKeyboardLayout Lib "user32" ( _
ByVal HKL As Long, ByVal flags As Integer) As Integer
Const aklPUNJABI As Long = &H4460446
ActivateKeyboardLayout aklPUNJABI, 0
Es gab den Vorschlag, zu versuchen
Public Declare Function ActivateKeyboardLayout Lib "user32" ( _
ByVal nkl As IntPtr, ByVal Flags As uint) As Integer
Wenn ich dies versuche, erhalte ich die Fehlermeldung:
Variable verwendet einen Automationstyp, der in Visual Basic nicht unterstützt wird
0 Stimmen
Interessant, ich werde das bei meiner Konfiguration (Vista 64) zu Hause ausprobieren. Haben Sie den Code mit Ihrem Access VBA-Aufruf assoziieren?
0 Stimmen
Ich habe die Frage mit dem Code aktualisiert
0 Stimmen
Sie haben Recht. Was ich nicht wußte, ist, daß die Tastaturkonstanten je nach der geladenen Version der Tastatur variieren können. Das hat mich zu der irrigen Meinung verleitet, dass Ihr Code falsch sei. Der Fehler liegt bei mir. Ich habe versucht, ihn zu korrigieren, indem ich die Frage geändert habe.
0 Stimmen
@Stephen, das Prämiensystem wurde geändert und hat es mir ermöglicht, Ihre Antwort als die richtige auszuwählen. Können Sie Ihren Kommentar # 3 & 4 zur Bereinigung entfernen?