MartyConnelly
martyconnelly at shaw.ca
Thu Dec 2 01:00:19 CST 2004
Here is some code hooked out of a long program 'See also this article It might be of some use 'Unicode and Keyboards on Windows 'http://www.microsoft.com/globaldev/handson/dev/Unicode-KbdsonWindows.pdf 'http://www.microsoft.com/globaldev/nlsweb/default.asp?submitted=40d 'Part of the file Win32api.txt: ' ' VK_L VK_R - left and right Alt, Ctrl and Shift virtual keys. ' Used only as parameters to GetAsyncKeyState() and GetKeyState(). ' No other API or message will distinguish left and right keys in this 'way. ' / Public Const VK_LSHIFT = &HA0 Public Const VK_RSHIFT = &HA1 Public Const VK_LCONTROL = &HA2 Public Const VK_RCONTROL = &HA3 Public Const VK_LMENU = &HA4 Public Const VK_RMENU = &HA5 'What a weird name for the Alt-key. but it does use the menu Private Const VK_LWIN = &H5B 'Left window button Private Const VK_RETURN = &HD 'ENTER key Private Const VK_SHIFT = &H10 'SHIFT key Private Const VK_CONTROL = &H11 'CTRL key Private Const VK_MENU = &H12 'ALT key Private Const VK_PAUSE = &H13 'PAUSE key Private Const VK_CAPITAL = &H14 'CAPS LOCK key Private Const VK_SNAPSHOT = &H2C 'Print Screen Private Const VK_APPS = &H5D 'Applications key on a Microsoft Natural Keyboard 'from http://support.microsoft.com/view/dev.asp?kb=242971 Const GW_HWNDFIRST = 0 Const GW_HWNDNEXT = 2 Private Const KEYEVENTF_KEYUP = &H2 Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _ ByVal bScan As Byte, ByVal dwflags As Long, ByVal dwExtraInfo As Long) Sub ShiftToLanguage() 'use the following code inside form or focused window or textbox 'to simulate the Alt RightShift = key combination: ' then press and then release the AltRight RightShift key 'order of pressing important keybd_event VK_RSHIFT, 0, 0, 0 keybd_event VK_RMENU, 0, 0, 0 keybd_event VK_RMENU, 0, KEYEVENTF_KEYUP, 0 'weird things happen if you don't up the shiftkey looks like capslock 'has been left on keybd_event VK_RSHIFT, 0, KEYEVENTF_KEYUP, 0 'line below needed for Access97 ' keybd_event VK_RMENU, 0, KEYEVENTF_KEYUP, 0 Debug.Print "Right Shift" DoEvents End Sub Sub ShiftToLanguageBack() 'use the following code inside form or focused window or textbox 'to simulate the Alt RightShift = key combination: ' then press and then release the AltRight RightShift key 'order of pressing important keybd_event VK_LSHIFT, 0, 0, 0 keybd_event VK_LMENU, 0, 0, 0 keybd_event VK_LMENU, 0, KEYEVENTF_KEYUP, 0 'weird things happen if you don't up the shiftkey looks like capslock 'has been left on keybd_event VK_LSHIFT, 0, KEYEVENTF_KEYUP, 0 'line below needed for Access97 ' keybd_event VK_LMENU, 0, KEYEVENTF_KEYUP, 0 Debug.Print "Left Shift" DoEvents 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