Что нового

Как получить Class Control под курсором

  • Автор темы dPenzin
  • Дата начала
D

dPenzin

Гость
Подскажите, пожалуйста, пересмотрел все темы в поиске и в гугл. Возможно я ввожу неправильные поисковые запросы.
Как получить класс контрола, который находится в данный момент под курсором (как это делает, например, Control Viewer)? Но только с помощью скрипта AutoIt.
 

erlik

Продвинутый
Сообщения
317
Репутация
84
Я, конечно, извиняюсь, что открываю Америку. Но. Внезапно. ControlViewer написан на ... барабанная дробь...AutoIT!
И исходники - вот ужас - в открытом доступе.
...Ну да - там 3000 строк. Googl'ом искать тяжело.
Но ведь еще есть wInformer - и тоже на AutoIT.
Ну да - там 800 строк - тоже тяжело. Понимаю.
Окей - вот 10 строк.
Код:
#include <Misc.au3>
#include <WinAPIEx.au3>

HotKeySet("{ESC}", "quit")

$hDll = DllOpen("user32.dll")
While 1
    Sleep(10)
             ;жмем на ЛКМ - видим класс.
	$LKMPressed= _IsPressed("01", $hDll)
    If $LKMPressed Then
        $CursorPos = MouseGetPos()
        Local $Point = DllStructCreate($tagPoint)
        DllStructSetData($Point, "x", $CursorPos[0])
        DllStructSetData($Point, "y", $CursorPos[1])
        $Result    = _WinAPI_WindowFromPoint($Point)
        $ClassName =_WinAPI_GetClassName($Result)
		ToolTip($ClassName)
	EndIf
WEnd

Func quit()
	ToolTip("")
    DllClose($hDll)
    Exit
EndFunc   ;==>quit
 
Верх