Что нового

Срабатывание скрипта по щелчку определенной области внутри окна

Visors

Новичок
Сообщения
58
Репутация
0
Доброе утро, форумчане.
помогите решить вопрос.

Есть скрипт, который срабатывает при щелчке по окну, которое имеет определенное название рабочего процесса (1.exe).
При щелчке по этому элементу на рабочем столе - скрипт выдает сообщение.
Код:
#include <Misc.au3>
#include <WinAPIProc.au3>
Local $pl1 = ProcessList('1.exe')

Local $wp1 = _WinAPI_EnumProcessWindows($pl1[1][1])

Local $hwnd, $thw, $hDLL = DllOpen("user32.dll")
While 1
    If _IsPressed('01', $hDLL) Then
        $hwnd = WinGetHandle("[ACTIVE]")
        If $hwnd = $wp1[1][0] Then
            MsgBox(64, 'Process 1.exe', 'Сообщение')

        EndIf
    EndIf
    Sleep(10)
WEnd

Подскажите - как заставить этот скрипт срабатывать - не по щелчку в любой точке этого элемента, а по определенной области внутри него ?
Эта область отстоит от верхнего левого угла этого окна - на x=20,y=30. И имеет ширину=45, высоту=23.
 
A

Alofa

Гость
Код:
#include <Misc.au3>
#include <Array.au3>
#include <WinAPIProc.au3>
Opt('MouseCoordMode', 0)

Local $aMGetPos, $aCurPos[4] = [20, 30, 450, 230] ; [X, Y, Width, Height]

Local $aWp1 = _WinAPI_EnumProcessWindows(ProcessExists('SciTE.exe'))
If @error Then Exit 10

Local $hDLL = DllOpen('user32.dll')
OnAutoItExitRegister('_Exit')

While 1
	If _IsPressed('01', $hDLL) And WinGetHandle('') = $aWp1[1][0] Then
		$aMGetPos = MouseGetPos()
		If $aMGetPos[0] >= $aCurPos[0] And $aMGetPos[0] <= ($aCurPos[0] + $aCurPos[2]) _
				And $aMGetPos[1] >= $aCurPos[1] And $aMGetPos[1] <= ($aCurPos[1] + $aCurPos[3]) _
				Then _ArrayDisplay($aMGetPos, 'Сообщение')
	EndIf
	Sleep(200)
WEnd

Func _Exit()
	DllClose($hDLL)
EndFunc
 
Автор
V

Visors

Новичок
Сообщения
58
Репутация
0
Alofa, все работает.
Спасибо за помощь.
 
Верх