Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Раскладка клавы... Добавлено: 11.08.07 18:31  

Автор вопроса:  K-Unit90 | Web-сайт: www.UniSite-net.narod.ru
Приведите полный пример на ВБ6 того, как сменить расскладку клавиатуры для всех программ и оконо в Виндоус, а то у меня меняется только в моей программе... :(

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 Mr.Smile



ICQ: 427682013 

Вопросов: 14
Ответов: 464
 Профиль | | #1 Добавлено: 19.08.07 20:20
А в какой программе ты видел, чтобы раскладка клавиатуры менялась для всех окон Windows?
Вряд ли получится сменить раскладку для всех окон сразу. Можешь только следить за текущей раскладкой клавиатуры и менять её на русскую, как только она изменилась. Или найти где хранится учёт раскладки клавиатуры для каждого окна, и поменять все на русскую :)

Ответить

Номер ответа: 2
Автор ответа:
 K-Unit



Вопросов: 0
Ответов: 2
 Профиль | | #2 Добавлено: 20.08.07 21:10
Ну смотрите... Я допустим не могу, как обычно переключить раскладку, т.к. глючит виндовс, а мне надо сделать программу, которая будет в трэе и при нажатии определенных горячих клавишь переключит в активном окне раскладку, а не в окне самой проги... Вот сижу и парюсь...)))

Ответить

Номер ответа: 3
Автор ответа:
 ZagZag



ICQ: 295002202 

Вопросов: 87
Ответов: 1684
 Профиль | | #3 Добавлено: 21.08.07 00:49
'This example was created by A.E.Veltstra

'This fucntion changes the locale and as a result, the keyboardlayout gets adjusted

'parameters for api's
Const KL_NAMELENGTH As Long = 9                      'length of the keyboardbuffer
Const KLF_ACTIVATE  As Long = &H1                     'activate the layout

'the language constants
Const LANG_NL_STD As String = "00000413"
Const LANG_EN_US As String = "00000409"
Const LANG_DU_STD As String = "00000407"
Const LANG_FR_STD As String = "0000040C"

'api's to adjust the keyboardlayout
Private Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long
Private Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long
Public Function SetKbLayout(strLocaleId As String) As Boolean
    'Changes the KeyboardLayout
    'Returns TRUE when the KeyboardLayout was adjusted properly, FALSE otherwise
    'If the KeyboardLayout isn't installed, this function will install it for you
    On Error Resume Next
    Dim strLocId As String 'used to retrieve current KeyboardLayout
    Dim strMsg As String   'used as buffer
    Dim lngErrNr As Long   'receives the API-error number

  'create a buffer
  strLocId = String(KL_NAMELENGTH, 0)
  'retrieve the current KeyboardLayout
  GetKeyboardLayoutName strLocId
  'Check whether the current KeyboardLayout and the
  'new one are the same
  If strLocId = (strLocaleId & Chr(0)) Then
    'If they're the same, we return immediately
    SetKbLayout = True
  Else
    'create buffer
    strLocId = String(KL_NAMELENGTH, 0)
    'load and activate the layout for the current thread
    strLocId = LoadKeyboardLayout((strLocaleId & Chr(0)), KLF_ACTIVATE)
    If IsNull(strLocId) Then  'returns NULL when it fails
      SetKbLayout = False
    Else 'check again
      'create buffer
      strLocId = String(KL_NAMELENGTH, 0)
      'retrieve the current layout
      GetKeyboardLayoutName strLocId
      If strLocId = (strLocaleId & Chr(0)) Then
        SetKbLayout = True
      Else
        SetKbLayout = False
      End If
    End If
  End If
End Function
Private Sub Form_Load()
    'change the current keybour layout to 'English - US'
    SetKbLayout LANG_EN_US
End Sub

Господа пионеры, качайте Api-Guide

Ответить

Номер ответа: 4
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #4
Добавлено: 21.08.07 06:05
Я ошибаюсь, или эта программа меняет раскладку для текущего процесса?

Ответить

Номер ответа: 5
Автор ответа:
 Mr.Smile



ICQ: 427682013 

Вопросов: 14
Ответов: 464
 Профиль | | #5 Добавлено: 21.08.07 13:07
2ZagZag:
Данный пример, если ему указать другую раскладку, загрузит её как новую; поэтому желательно менять раскладку через ActivateKeyboardLayout. У меня где-то завалялся пример, как найду-выложу сюда.
Господа пионеры, качайте Api-Guide
А вот это ты точно подметил! :)
http://allapi.mentalis.org/downloads/apiguide/agsetup.exe

Ответить

Номер ответа: 6
Автор ответа:
 ZagZag



ICQ: 295002202 

Вопросов: 87
Ответов: 1684
 Профиль | | #6 Добавлено: 21.08.07 14:50
А какая конечная цель? Типа PuntoSwitcher написать?

Ответить

Номер ответа: 7
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #7 Добавлено: 21.08.07 14:54
Я ошибаюсь, или топстартер думает, что если раскладка переключается сама при переходе из одного окна в другое - глючит винда? :)))

Глючит? переустанови! Не поможет - ещё раз... после 3-5ого раза до тебя дойдет :)

Ответить

Номер ответа: 8
Автор ответа:
 K-Unit



Вопросов: 0
Ответов: 2
 Профиль | | #8 Добавлено: 21.08.07 17:33
Спасибо всем, я нашел выход из ситуации! Тема закрыта :)

Ответить

Номер ответа: 9
Автор ответа:
 Mr.Smile



ICQ: 427682013 

Вопросов: 14
Ответов: 464
 Профиль | | #9 Добавлено: 21.08.07 21:41
Ну давай рассказывай, что ты там придумал! А то собрал тут всех, и фтопку... Отвечай на свой вопрос.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам