[AccessD] sending ALT Shift Characters

MartyConnelly martyconnelly at shaw.ca
Thu Dec 2 01:12:10 CST 2004


Here is another approach, this assumes you are running with a floating 
multi language keyboard bar set from the control panel
This works well if using multiple language keyboards, maynot work well 
with 97 can't remember.
Switch on textbox's  On Focus

Public Declare Function LoadKeyboardLayout Lib "user32" Alias _
"LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal Flags As Long) As 
Long

Private Declare Function ActivateKeyboardLayout Lib "user32" (ByVal HKL 
As Long, _
ByVal Flags As Long) As Long

Private Declare Function GetKeyboardLayoutName Lib "user32" Alias _
"GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long

Const KL_NAMELENGTH = 9

Sub testarabic()
Dim lRet As Long

   lRet = LoadKeyboardLayout("00000409", 1)     '   For English
   Debug.Print lRet
   lRet = ActivateKeyboardLayout("00000409", 0)
   Debug.Print lRet
   lRet = LoadKeyboardLayout("00000401", 1)    '   For Arabic
     Debug.Print lRet
   lRet = ActivateKeyboardLayout("00000401", 0)
   Debug.Print lRet
     lRet = LoadKeyboardLayout("00011009", 1)    '   For FrenchCanadian
     Debug.Print lRet
   lRet = ActivateKeyboardLayout("00011009", 0)
   Debug.Print lRet
End Sub

Sub resetenglish()
Dim lRet As Long
 lRet = LoadKeyboardLayout("00000409", 1)     '   For US English
   Debug.Print lRet
   lRet = ActivateKeyboardLayout("00000409", 0)
   Debug.Print lRet
End Sub

Sub whatiskeybd()
Dim kbname(100) As Byte
Dim strkbname As String
GetKeyboardLayoutName (kbname) '           //place keyboard layout name in r
strkbname = kbname
Debug.Print strkbname
Dim I As Long
For I = 0 To 20
Debug.Print kbname(I)
Next I
'Loadkeyboardlayout('00000409', KLF_ACTIVATE);//Activate US keyboard layout
'//Do your stuff here
'Loadkeyboardlayout(r, KLF_ACTIVATE);//

    Dim strName As String
    'Create a buffer
    strName = String(KL_NAMELENGTH, 0)
    'Get the keyboard layout name
    GetKeyboardLayoutName strName
    Debug.Print "Keyboard layout name: " + strName
End Sub


handyman at actcom.co.il wrote:

> Hi All,
>
> When I enter data in a certain textbox, I need to do a "Left Alt + 
> Shift" in order to change the language from English to another 
> language.  Is there a way I can send this via code when entering the 
> textbox, and then  again when exiting the textbox.  I would imagine I 
> need to do it in the On Enter event, but how do I send the "Left Alt + 
> Shift"?
>
> Thanks
>
> Gershon Markowitz
> mailto:Handyman at actcom.co.il
>

-- 
Marty Connelly
Victoria, B.C.
Canada






More information about the AccessD mailing list