Уважаемые форумчане, хотелось бы узнать возможно ли в принципе
по клику мыши, получить какую-либо информацию об активном (кликнутом) элементе панели инструментов (ToolbarWindow32)
по клику мыши, получить какую-либо информацию об активном (кликнутом) элементе панели инструментов (ToolbarWindow32)
Код:
#include <WindowsConstants.au3>
#include <WinAPI.au3>
#include <Misc.au3>
HotKeySet('{ESC}', '_Quit')
Global $hDLL
;=== Сначала получаем идентификатор панели инструментов
$h_SciTE = WinGetHandle('[CLASS:SciTEWindow]')
$hToolbar = ControlGetHandle($h_SciTE, "", "[CLASS:ToolbarWindow32; INSTANCE:1]")
;=== Далее получаем хендл окна, по которому сделан клик мыши
Local $hDLL = DllOpen("user32.dll")
While 1
If _IsPressed("04", $hDLL) Then
_ShowPopupMenu_Proc()
Else
Sleep(100)
EndIf
WEnd
DllClose($hDLL)
Func _ShowPopupMenu_Proc()
While _IsPressed("04", $hDLL) ;=== "04" (средняя кнопка, просто для отладки)
Sleep(250)
WEnd
Local $stPoint = DllStructCreate('int X;int Y')
Local $aMousePos = MouseGetPos()
DllStructSetData($stPoint, 'X', $aMousePos[0])
DllStructSetData($stPoint, 'Y', $aMousePos[1])
Local $hWndFromPoint = _WinAPI_WindowFromPoint($stPoint)
ConsoleWrite(@ScriptLineNumber & "): " & $hWndFromPoint & @CRLF)
If _WinAPI_GetClassName($hWndFromPoint) = 'ToolbarWindow32' Then
;=== Здесь хотелось бы перехватить нажатие мыши и определить
; по какой кнопке "тулбара" сделан клик
ConsoleWrite(@ScriptLineNumber & "): " & 'ToolbarWindow32' & @CRLF)
EndIf
EndFunc ;==>_ShowPopupMenu_Proc
Func _Quit()
Exit
EndFunc ;==>_Quit