В общем имеется файервол Outpost. После его обновления функции ControlGetText/WinGetText перестали ловить текст из окошка запроса на соединение. По заголовку окно определяется, а вот в разделе "Visible Tex" - стало грусно. Инфо по окошку:
В общем нужно получить текст контролов "Text: C:\Program Files\Mozilla Firefox\firefox.exe" (отличаются номером INSTANCE)
Кстати, конструкция из примера по функции _WinAPI_WindowFromPoint тоже не отдаёт текст
пишет всегда пустую строку
>>>> Window <<<<
Title: (тут не определяется, удалил чужой заголовок. должно быть "Outpost Firewall Pro")
Class: #32770
Position: 732, 427
Size: 496, 630
Style: 0x14C008CC
ExStyle: 0x00010509
Handle: 0x00190200
>>>> Control <<<<
Class: Static
Instance: 3
ClassnameNN: Static3
Name:
Advanced (Class): [CLASS:Static; INSTANCE:3]
ID: 1003
Text: C:\Program Files\Mozilla Firefox\firefox.exe
Position: 196, 74
Size: 284, 24
ControlClick Coords: 119, 4
Style: 0x50028000
ExStyle: 0x00000004
Handle: 0x00190352
>>>> StatusBar <<<<
>>>> ToolsBar <<<<
>>>> Visible Text <<<<
Static
Static
Static
Static
Static
Button
Button
Button
Button
ComboBox
Button
Button
Static
Button
Button
Static
SysLink
>>>> Hidden Text <<<<
Static
SysListView32
SysHeader32
Static
Button
Title: (тут не определяется, удалил чужой заголовок. должно быть "Outpost Firewall Pro")
Class: #32770
Position: 732, 427
Size: 496, 630
Style: 0x14C008CC
ExStyle: 0x00010509
Handle: 0x00190200
>>>> Control <<<<
Class: Static
Instance: 3
ClassnameNN: Static3
Name:
Advanced (Class): [CLASS:Static; INSTANCE:3]
ID: 1003
Text: C:\Program Files\Mozilla Firefox\firefox.exe
Position: 196, 74
Size: 284, 24
ControlClick Coords: 119, 4
Style: 0x50028000
ExStyle: 0x00000004
Handle: 0x00190352
>>>> StatusBar <<<<
>>>> ToolsBar <<<<
>>>> Visible Text <<<<
Static
Static
Static
Static
Static
Button
Button
Button
Button
ComboBox
Button
Button
Static
Button
Button
Static
SysLink
>>>> Hidden Text <<<<
Static
SysListView32
SysHeader32
Static
Button
###AutoIt Control Viewer Report File###
Environment
===========
System:
Aero:
Window
======
Title: Outpost Firewall Pro
Class: #32770
Style: 0x14C008CC
ExStyle: 0x00010509
Position: 732, 427
Size: 496, 630
Handle: 0x00080C66
PID: 1568
Path:
Control
=======
Class: Static
Instance: 3
ID: 1003
Style: 0x50028000
ExStyle: 0x00000004
Position: 196, 74
Size: 284, 24
Handle: 0x000B0C22
Text:
Environment
===========
System:
Aero:
Window
======
Title: Outpost Firewall Pro
Class: #32770
Style: 0x14C008CC
ExStyle: 0x00010509
Position: 732, 427
Size: 496, 630
Handle: 0x00080C66
PID: 1568
Path:
Control
=======
Class: Static
Instance: 3
ID: 1003
Style: 0x50028000
ExStyle: 0x00000004
Position: 196, 74
Size: 284, 24
Handle: 0x000B0C22
Text:
В общем нужно получить текст контролов "Text: C:\Program Files\Mozilla Firefox\firefox.exe" (отличаются номером INSTANCE)
Кстати, конструкция из примера по функции _WinAPI_WindowFromPoint тоже не отдаёт текст
Код:
#include <WinAPI.au3>
#include <Constants.au3>
Global $Struct = DllStructCreate($tagPoint), $hTmpWnd
HotKeySet("{ESC}", "_Quit")
Func _Quit()
Exit
EndFunc
While 1
Sleep(100)
$xy = MouseGetPos()
DllStructSetData($Struct, "x", $xy[0])
DllStructSetData($Struct, "y", $xy[1])
$hWnd = _WinAPI_WindowFromPoint($Struct) ; дескриптор окна под курсором
If $hTmpWnd <> $hWnd Then ; если дескриптор изменился, то запрос новых данных
$a = WinGetClientSize($hWnd) ; клиентские размеры
$b = WinGetPos($hWnd) ; коорд. и размеры окна
$tStru = _WinAPI_GetWindowRect($hWnd) ; тоже что WinGetPos
$info = _
'Текст = ' & WinGetTitle($hWnd) & @CRLF & _
'Класс = ' & _WinAPI_GetClassName($hWnd) & @CRLF & _
'Идентификатор = ' & _WinAPI_GetDlgCtrlID($hWnd) & @CRLF & _
'Прямоугольник = ' & DllStructGetData($tStru, 1) & ' - ' & DllStructGetData($tStru, 2) & ' - ' & DllStructGetData($tStru, 3) & ' - ' & DllStructGetData($tStru, 4) & @CRLF & _
'x=' & $b[0] & @CRLF & 'y=' & $b[1] & @CRLF & 'w=' & $b[2] & ' (кл.' & $a[0] & ')' & @CRLF & 'h=' & $b[3] & ' (кл.' & $a[1] & ')'
ToolTip($info)
$hTmpWnd = $hWnd
EndIf
WEnd
пишет всегда пустую строку