Всем привет!
Есть элемент, созданный при помощи Autoit, например Input1, т.е. я знаю ID элемента, его хэндл, а как узнать в фокусе ли элемент? Вроде не сложная задача, но как-то не решается...
В ниже приведенном примере, зная ClassNameNN, я могу определить фокус элемента, но это как-то не универсально, т.к. ClassNameNN может быть любой, в зависимости от последовательности создания элементов на форме.
Можно ли определить наличие фокуса зная только ID элемента/хэндл или как мне программно узнать ClassNameNN элемента?
	
	
		
			
	
	
	
	
  
    
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
		
	
			
			Есть элемент, созданный при помощи Autoit, например Input1, т.е. я знаю ID элемента, его хэндл, а как узнать в фокусе ли элемент? Вроде не сложная задача, но как-то не решается...
В ниже приведенном примере, зная ClassNameNN, я могу определить фокус элемента, но это как-то не универсально, т.к. ClassNameNN может быть любой, в зависимости от последовательности создания элементов на форме.
Можно ли определить наличие фокуса зная только ID элемента/хэндл или как мне программно узнать ClassNameNN элемента?
			
				Код:
			
		
		
		#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
HotKeySet("{F1}", "GetFocus")
$Form1 = GUICreate("Form1", 251, 142, 349, 207)
$Input1 = GUICtrlCreateInput("Input1", 8, 16, 121, 21)
$hInput1=GUICtrlGetHandle($Input1)
$Input2 = GUICtrlCreateInput("Input2", 8, 56, 121, 21)
GUISetState(@SW_SHOW)
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd
Func GetFocus()
    If ControlGetFocus($Form1)='Edit1' Then
        MsgBox(0,'','$Input1 - в фокусе')
    Else
        MsgBox(0,'','$Input1 - не в фокусе')
    EndIf
EndFunc 
	            