Функция LoadKeyboardLayout () не работает в VB 2010 - PullRequest
0 голосов
/ 30 сентября 2011

Я хочу изменить раскладку клавиатуры по умолчанию для другой установленной раскладки клавиатуры, используя мое приложение VB. Я поиграл по этому поводу и нашел для этого функцию LoadKeyboardLayout (). Но есть ли эта поддержка в vb 2010. Когда я написал код нижеи нет синтаксической ошибки. Но когда я запускаю программу, возникает ошибка «PInvokeStackImbalance ...». Как я могу решить эту проблему в VB 2010. Вот мой код:

Private Const KLF_ACTIVATE As Long = &H1
Private Const KLF_NOTELLSHELL As Long = &H80
Private Const KLF_REORDER As Long = &H8
Private Const KLF_REPLACELANG As Long = &H10
Private Const KLF_RESET As Long = &H40000000
Private Const KLF_SETFORPROCESS As Long = &H100
Private Const KLF_SHIFTLOCK As Long = &H10000
Private Const KLF_SUBSTITUTE_OK As Long = &H2
Private Const KLF_UNLOADPREVIOUS As Long = &H4

Private Declare Function LoadKeyboardLayout _
Lib "user32.dll" _
Alias "LoadKeyboardLayoutA" ( _
   ByVal pwszKLID As String, _
   ByVal flags As Long) As Long

'Inside a button click event
   LoadKeyboardLayout("00000409", KLF_ACTIVATE)

Можеткто-нибудь, помогите мне ...

1 Ответ

1 голос
/ 25 ноября 2011

I думаю все, что вам нужно сделать, это переключить длинные на целые числа ...

Private Declare Function LoadKeyboardLayout Lib "user32.dll" _ 
Alias "LoadKeyboardLayoutA" ( ByVal pwszKLID As String, _ 
   ByVal flags As Integer) As Integer
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...