Что нового

[Окна, Диалоги] Проблема с разворачиванием окна

Greyzer

Новичок
Сообщения
28
Репутация
0
Здравствуйте! Есть сторонняя программа.


Ее нужно развернуть. При клике мышью по кнопке развернуть получается одно, т.е. вот так:


При использовании кода:
Код:
WinSetState($DistoTitle, "", @SW_MAXIMIZE)

Получается совсем другое:


Подскажите, пожалуйста, как сделать так, чтобы результат был как при клике мышью по кнопке "Развернуть"?
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Посмотрел на программку (версия 4.0). При запуске открывается сразу два окна, одно скрыто. При клике мыши по кнопке развернуть - видимое окно скрывается, а невидимое - показывается. Вот так получилось:
Код:
Opt("WinTitleMatchMode", 2)
$DistroTitle="Leica DISTO transfer pc" ;частичный заголовок окна

Run("C:\Program Files\DISTO transfer 40\Disto40.exe") ;запуск программы
WinWait($DistroTitle) ;ждем окна программы
$aDistroList = WinList($DistroTitle) ;получаем дескрипторы окон программы
WinSetState($aDistroList [1][1], "", @SW_HIDE) ;скрываем видимое окно
WinSetState($aDistroList [2][1], "", @SW_SHOW) ;отображаем невидимое
 
Автор
G

Greyzer

Новичок
Сообщения
28
Репутация
0
Спасибо, буду пробовать.


Добавлено:
Сообщение автоматически объединено:

Код:
$aDistoList = WinList($DistoTitle) ;получаем дескрипторы окон программы
WinSetState($aDistoList [1][1], "", @SW_HIDE) ;скрываем видимое окно
WinSetState($aDistoList [2][1], "", @SW_SHOW) ;отображаем невидимое

Ну в общем сворачивается и разворачивается одно и то же окно.

Пишу после описанной выше конструкции:
Код:
MsgBox(0,"",$aDistoList[0][0]) ; Выясняем кол-во окон

Выдает "1". Как так? Я вроде как понял, что окон 2, но одно из них скрытое...


Добавлено:
Сообщение автоматически объединено:

Все разобрался. Получается, что новая программа, которая Disto40.exe, действительно имеет скрытое второе окно.
А для старой версии этой программы, над которой я и мучался, WinList мне и возвращал количество окон равное одному.
Вообще было бы здорово конечно понять как они так реализовали в старой версии разворачивание окна, но боюсь, что об этом знают только сами разработчики... :smile:
Может сымитировать клик по непосредственно самой кнопке "Развернуть"? Тогда как можно получить handle или ее ID?
 
Верх