Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Узнать раскладку другого окна / 2 сообщений из 2, страница 1 из 1
27.06.2006, 17:36
    #33817558
kinolog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать раскладку другого окна
Скажите кто знает, как узнать раскладку другого окна (Rus-En). С помошью функции GetKeyboardLayoutName возвращаеться только раскладка своего окна, а как другого узнать не понятно. Заранее благодарен.
...
Рейтинг: 0 / 0
28.06.2006, 10:05
    #33818445
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать раскладку другого окна
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
Public Const LOCALE_SLANGUAGE = &H2
Public Const LOCALE_SABBREVLANGNAME = &H3

Public Declare Function FindWindow Lib "user32" _
  Alias "FindWindowA" ( _
  ByVal lpClassName As String, _
  ByVal lpWindowName As String) As Long
  
Public Declare Function GetKeyboardLayout Lib "user32" ( _
  ByVal dwLayout As Long) As Long
  
Public Declare Function GetWindowThreadProcessId Lib "user32" ( _
  ByVal hwnd As Long, _
  lpdwProcessId As Long) As Long

Private Declare Function GetLocaleInfo Lib "kernel32" _
  Alias "GetLocaleInfoA" ( _
  ByVal Locale As Long, _
  ByVal LCType As Long, _
  ByVal lpLCData As String, _
  ByVal cchData As Long) As Long

Public Sub GetKbdName()
    Dim hwnd As Long
    Dim lngThreadId As Long
    Dim lngProcessId As Long
    Dim lngKbdLayout As Long
    Dim lngLangId As Long
    Dim strLongName As String
    Dim strShortName As String

    hwnd = FindWindow(vbNullString, "1.txt - Блокнот")

    lngThreadId = GetWindowThreadProcessId(hwnd, lngProcessId)

    lngKbdLayout = GetKeyboardLayout(lngThreadId)

    lngLangId = lngKbdLayout And &HFFFF&

    strLongName = Space$(GetLocaleInfo(lngLangId, _
      LOCALE_SLANGUAGE, vbNullString,  0 ))
    GetLocaleInfo lngLangId, _
      LOCALE_SLANGUAGE, strLongName, Len(strLongName)

    strShortName = Space$(GetLocaleInfo(lngLangId, _
      LOCALE_SABBREVLANGNAME, vbNullString,  0 ) -  1 )
    GetLocaleInfo lngLangId, _
      LOCALE_SABBREVLANGNAME, strShortName, Len(strShortName)

    MsgBox "Раскладка окна: " & strShortName & " - " & strLongName
End Sub
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Узнать раскладку другого окна / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]