powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Узнать раскладку другого окна
2 сообщений из 2, страница 1 из 1
Узнать раскладку другого окна
    #33817558
kinolog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скажите кто знает, как узнать раскладку другого окна (Rus-En). С помошью функции GetKeyboardLayoutName возвращаеться только раскладка своего окна, а как другого узнать не понятно. Заранее благодарен.
...
Рейтинг: 0 / 0
Узнать раскладку другого окна
    #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
2 сообщений из 2, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Узнать раскладку другого окна
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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