Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 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 у меня работает твой код, только немного с др параметром
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 7 
      
Автор ответа:
 Puzer
![]()
![]()
Вопросов: 2
Ответов: 2
      
 Профиль |  | #7
       
Добавлено:  14.03.10 21:44
       
    
       
  
а у меня в
 
    
при откладке пишет:
Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена.