Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Раскладка клавиатуры в активном окне (vb.net) Добавлено: 12.03.10 16:34  

Автор вопроса:  Puzer
Не получаеться определить раскладку в активном окне,Вот мой код:

Declare Function GetForegroundWindow Lib "user32" Alias "GetForegroundWindow" () As Long
Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, ByVal lpdwProcessId As Long) As Long
    Dim ThreadID As Long
    Dim ThreadLayout As Long
 Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
ThreadID = GetWindowThreadProcessId(GetForegroundWindow, "ЧТО ТО СЮДА НАДО")
 ThreadLayout = GetKeyboardLayout(ThreadID)'получаем саму раскладку

смущает сам GetWindowThreadProcessId,точнее lpdwProcessId - что это, и как добыть ?

Ответить

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

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



Вопросов: 58
Ответов: 4255
 Профиль | | #1 Добавлено: 12.03.10 19:36
А к чему в NET такие извращения как проверка раскладки по таймеру??? Для отлова смены раскладки у формы есть соответствующее событие... не стоит изобретать велосипед..

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #2 Добавлено: 12.03.10 19:37
или это в чужом окне??? Если в чужом то уже сразу видно что в деклациях ошибки.. и дальше можно даже не смотреть..

Ответить

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



Вопросов: 2
Ответов: 2
 Профиль | | #3 Добавлено: 12.03.10 20:25
ну а как правильно это сделать ??

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #4 Добавлено: 12.03.10 21:46
Например вот так..

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #5 Добавлено: 12.03.10 21:47
сорри..

http://www.cyberforum.ru/csharp-net/thread20029.html

Ответить

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



Вопросов: 4
Ответов: 330
 Профиль | | #6 Добавлено: 13.03.10 11:33
на vb6 у меня работает твой код, только немного с др параметром
  1.  
  2. ThreadID = GetWindowThreadProcessId(GetForegroundWindow, 0)
  3. ThreadLayout = GetKeyboardLayout(ThreadID)

Ответить

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



Вопросов: 2
Ответов: 2
 Профиль | | #7 Добавлено: 14.03.10 21:44
а у меня в
  1. ThreadID = GetWindowThreadProcessId(GetForegroundWindow, 0)

при откладке пишет:
Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена.

Ответить

Страница: 1 |

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



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