Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Как отследить раскладку активного приложения Добавлено: 17.08.06 15:39  

Автор вопроса:  KEP
Как отследить раскладку клавиатуры в любом активном приложении?? Удается отследить только в самом приложении Visual Basicика.

Private Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long

Private Sub Command1_Click()
Dim kNam As String
Dim KeybLayoutName As String
KeybLayoutName = String(9, 0)
GetKeyboardLayoutName KeybLayoutName
'409 - английский, 419 - русский
kNam = CStr(CLng(Left$(KeybLayoutName, InStr(1, KeybLayoutName, Chr(0)) - 1)))
If kNam = "409" Then MsgBox "En"
If kNam = "419" Then MsgBox "Ru"
End Sub

Ответить

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

Номер ответа: 1
Автор ответа:
 Viper



ICQ: 249094859 

Вопросов: 0
Ответов: 310
 Профиль | | #1 Добавлено: 18.08.06 12:29
Операционная система какая? Ибо есть нюансы.

Ответить

Номер ответа: 2
Автор ответа:
 KEP



Вопросов: 44
Ответов: 119
 Профиль | | #2 Добавлено: 18.08.06 12:49
WinXP, и если можно об этих ньюансах расскажи чтоб их тоже учесть.

Ответить

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


 

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

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 18.08.06 19:13
Private Function GetLanguageInfo(ByVal hwnd As Long) As String
'Возвращает раскладку в указаном окне по hWnd
Dim sReturn As String, nRet As Long
Dim pID As Long, tId As Long, LCID As Long
tId = GetWindowThreadProcessId(hwnd, pID)
LCID = LoWord(GetKeyboardLayout(tId))
sReturn = String$(128, 0)
nRet = GetLocaleInfo(LCID, LOCALE_SENGLANGUAGE, sReturn, Len(sReturn))
If nRet > 0 Then GetLanguageInfo = Left$(sReturn, nRet - 1)
End Function
Private Function LoWord(DWORD As Long) As Integer
If DWORD And &H8000& Then
LoWord = &H8000 Or (DWORD And &H7FFF&;)
Else
LoWord = DWORD And &HFFFF&
End If
End Function

Ответить

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


 

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

Вопросов: 236
Ответов: 8362
 Профиль | | #4 Добавлено: 18.08.06 19:14
Private Const LOCALE_SENGLANGUAGE = &H1001

Ответить

Номер ответа: 5
Автор ответа:
 KEP



Вопросов: 44
Ответов: 119
 Профиль | | #5 Добавлено: 18.08.06 19:25
Спасибо HACKER!!! Всегда в тему и посуществу. Но вот возникает следующий вопрос как программе получить hwnd активного окна. моя программа будет висеть в треи и должна записывать в ТекстБокс язык активного окна.

Ответить

Номер ответа: 6
Автор ответа:
 Серёга



ICQ: 262809473 

Вопросов: 17
Ответов: 561
 Web-сайт: houselab.narod.ru
 Профиль | | #6
Добавлено: 18.08.06 21:02
как программе получить hwnd активного окна


Private Declare Function GetForegroundWindow Lib "user32" () As Long

Ответить

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



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #7
Добавлено: 18.08.06 21:13
[OFFTOP]
ещё один кейлоггер?

Ответить

Номер ответа: 8
Автор ответа:
 KEP



Вопросов: 44
Ответов: 119
 Профиль | | #8 Добавлено: 19.08.06 03:29
Всем большушие от души спасибо. Все рабатает.

Ответить

Номер ответа: 9
Автор ответа:
 KEP



Вопросов: 44
Ответов: 119
 Профиль | | #9 Добавлено: 20.08.06 09:54
Да но уже намного лучше.

Ответить

Страница: 1 |

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



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