Что нового

[RF3.Offline] Как различать окна по классу без использования заголовка

Timoxa

Новичок
Сообщения
2
Репутация
0
Win7 x64
Здравствуйте. Столкнулся с такой проблемой:
Пробежался Control Viewer по всем окнам приложения и выяснил, что Class окна на всех
локациях одинаковый, отличия только в Title, но обращение к окну по классу не работает.
[hide]
Код:
WinActive("Рыболовная база Озеро"); стартовое окно             
            WinActivate("Рыболовная база Озеро") ;код работает          
            WinMove("[ACTIVE]", "", 0, 0)
	        $hWnd = WinGetHandle('[ACTIVE]')
	        MsgBox(0, "$hWnd",$hWnd , 1)
                    $sTitle = WinGetTitle($hWnd)
                    MsgBox(0, "$sTitle",$sTitle, 1)
                        $sClass = _WinAPI_GetClassName($hWnd)
                        MsgBox(0, "$sClass",$sClass, 1);результат: WindowsForms10.Window.8.app.0.aec740
                        SLEEP(2000);Получил ту же строку, что и выдал Control Viewer.
[/hide]

Попробовал напрямую подставить полученный класс в код и опять ноль эффекта. Как можно решить эту проблему, чтобы заходить с любой локации, а не только с стартового окна?


[hide]
Код:
WinActive("[CLASS:WindowsForms10.Window.8.app.0.aec740]")            
            WinActivate("[CLASS:WindowsForms10.Window.8.app.0.aec740]") ;код не работает          
            WinMove("[ACTIVE]", "", 0, 0)
[/hide]
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
А что ты хочешь получить обращаясь к окну по классу а не по тайтлу?

Если тупо заходить в игру, то можно в массив всунуть набор тайтлов и при запуске искать есть ли нужный и всё.
 
Верх