Что нового

Реакция на наведение курсора на окно - без предварительного щелчка по окну

cerber412

Новичок
Сообщения
42
Репутация
0
Всем доброго дня.
Подскажите решение.

У меня есть скрипт, который реагирует на наведение курсора мышки - на окно программы "Калькулятор" (при условии что оно видимо на листе).
То есть - если навести курсор на это окно, то скрипт реагирует - выдавая сообщение в нижнем левом углу экрана.

Но этот скрипт работает не идеально.
Чтобы он начал работать - я сперва обязательно должен щелкнуть по этому окну мышкой. И только тогда он начнет реагировать - на наведение курсора на это окно.

Подскажите, как заставить этот скрипт реагировать - на наведение курсора на программу калькулятор - без предварительного щелчка по этому окну ?
Код:
#include <WinAPI.au3>
#include <WindowsConstants.au3>
Global $hWnd, $hControl, $hControlPrev

If Not ProcessExists('calc.exe') Then Run('calc')
$hWnd = WinWaitActive('[CLASS:CalcFrame]')

While 1
    Sleep(200)
    If Not WinExists($hWnd) Then Exit
    $hControl = _WinAPI_WindowFromPoint(_WinAPI_GetMousePos())
    If _WinAPI_GetAncestor($hControl, $GA_ROOT) = $hWnd Then
        If $hControlPrev <> $hControl Then
            TrayTip('Область окна', '----- Элемент: ------' & @CR & 'Дескриптор: ' & $hControl & @CR & 'ID: ' & _WinAPI_GetDlgCtrlID($hControl), 2, 1)
            $hControlPrev = $hControl
        EndIf
    Else
        TrayTip('', '', 0)
    EndIf
WEnd
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Замените WinWaitActive() на WinWait().
 
Верх