Что нового

[Окна, Диалоги] WinMove(): проблема изменения размеров окон справки по AUTOIT

snoitaleR

AutoIT Гуру
Сообщения
854
Репутация
223
Всем известны файлы справки по AUTOIT:
AutoIt3.chm
UDFs3.chm
autoit3_2_5_4_ru.chm
Код:
WinMove("AutoIt Help","",10,10,@DesktopWidth-20,@DeskTopHeight-20)
 WinMove("AutoIt UDFs Help","",10,10,@DesktopWidth-20,@DeskTopHeight-20)
 WinMove("AutoIt","",10,10,@DesktopWidth-20,@DeskTopHeight-20)

Не могу понять, почему русский файл справки не разворачивается?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 175
Репутация
2 331
snoitaleR [?]
почему русский файл справки не разворачивается?
WinMove перемещает и изменяет размер окна, для разворачивания используется:
Код:
WinSetState("AutoIt Help", "", @SW_MAXIMIZE)



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

Стоп, русский файл? ну там видимо и заголовок на русском? :whistle:
 
Автор
snoitaleR

snoitaleR

AutoIT Гуру
Сообщения
854
Репутация
223
CreatoR
Я, наверное, неточно выразился...
У меня разворачивание: до 10 пикселей от границы экрана... :smile:
Первые два файла справки разворачиваются до нужных координат, а третий - "ни в какую"...
Заголовок окна я вычислял с помощью "au3info.exe"...
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 705
Значит есть еще окна начинающиеся с "AutoIt", например скрытое окно твоего скрипта. Поставь эту строчку в начало своего скрипта.

Код:
Opt('WinTitleMatchMode', 3)




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

А еще лучше используй название класса для сужения поиска.

Код:
WinMove("[TITLE:AutoIt;CLASS:HH Parent]", "", 10, 10, @DesktopWidth - 20, @DesktopHeight - 20)
 
Автор
snoitaleR

snoitaleR

AutoIT Гуру
Сообщения
854
Репутация
223
Yashied
В точку... :smile:
После этого развернулся...
Но я не могу найти ни одного окна (кроме русскоязычной справки) с заголовком "AutoIt"...
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 175
Репутация
2 331
snoitaleR [?]
я не могу найти ни одного окна (кроме русскоязычной справки) с заголовком "AutoIt"
Это скрытое окно. И вообще, при любой операций с окнами, лучше указывать класс окна + заголовок, так всегда надёжнее.
 
Автор
snoitaleR

snoitaleR

AutoIT Гуру
Сообщения
854
Репутация
223
И последний вопрос (для полной ясности):
У меня заголовок окна FAR:
{X:\PROJECT\AUTOIT} - Far
Он попадет в шаблон: "AutoIt" для заголовка окна?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 705
snoitaleR сказал(а):
Но я не могу найти ни одного окна (кроме русскоязычной справки) с заголовком "AutoIt"...
Вот, посмотри на это окно.

Код:
WinSetState(AutoItWinGetTitle(), '', @SW_SHOW)

While 1
	Sleep(100)
WEnd
 
Автор
snoitaleR

snoitaleR

AutoIT Гуру
Сообщения
854
Репутация
223
Yashied
Я понял, что существует скрытое окно...
Но тогда не понятно, почему первые два окна справки развернулись?
У них заголовок также начинается со слова "AutoIt"...
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 705
Значит они были первыми (перед скрытым окном) в Z-последовательности.
 
Автор
snoitaleR

snoitaleR

AutoIT Гуру
Сообщения
854
Репутация
223
Yashied
Ясно...
Теперь, когда уточнен класс окна, скрипт правильно работает и без команды Opt...
Код:
; НАЧАЛО

 ;Opt('WinTitleMatchMode', 3)

; Разворачивание окна справки на весь экран

 WinMove("[TITLE:AutoIt Help;CLASS:HH Parent]","",10,10,@DesktopWidth-20,@DeskTopHeight-20)
 WinMove("[TITLE:AutoIt UDFs Help;CLASS:HH Parent]","",10,10,@DesktopWidth-20,@DeskTopHeight-20)
 WinMove("[TITLE:AutoIt;CLASS:HH Parent]","",10,10,@DesktopWidth-20,@DeskTopHeight-20)

; КОНЕЦ


Спасибо еще раз за помощь... :smile:
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 705
Opt() для надежности тоже лучше оставить.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 175
Репутация
2 331
snoitaleR [?]
почему первые два окна справки развернулись?
Потому что нет окон начинающихся с таких заголовков. По умолчани в AutoIt установлена опция поиска окон в частичном режиме (заголовок может начинаться с указанной строки):

Код:
Opt('WinTitleMatchMode', 3)


1 = Match the title from the start (default)
2 = Match any substring in the title
3 = Exact title match
4 = Advanced mode, see Window Titles & Text (Advanced)
-1 to -4 = force lower case match according to other type of match.
Кстати как видно с описания, можно указать и поиск с учётом регистра букв.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 705
Кстати, по возможности лучше работать с хендлами - WinGetHandle(). А дальше пошло-поехало.
 
Автор
snoitaleR

snoitaleR

AutoIT Гуру
Сообщения
854
Репутация
223
CreatoR
Я переставил последнюю функцию WinMove() на первое место и закоммендировал Opt - не работает, раскомментировал - работает...
Код:
; НАЧАЛО

 ;Opt('WinTitleMatchMode', 3)

; Разворачивание окна справки на весь экран

 WinMove("[TITLE:AutoIt;CLASS:HH Parent]","",10,10,@DesktopWidth-20,@DeskTopHeight-20)
 WinMove("[TITLE:AutoIt Help;CLASS:HH Parent]","",10,10,@DesktopWidth-20,@DeskTopHeight-20)
 WinMove("[TITLE:AutoIt UDFs Help;CLASS:HH Parent]","",10,10,@DesktopWidth-20,@DeskTopHeight-20)

; КОНЕЦ

Спасибо за полезную информацию... :smile:
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 175
Репутация
2 331
snoitaleR [?]
всегда остается вероятность "промазать" мимо нужного окна
Если грамотно всё оформить (учитывая все факторы и используя нужные методы), то можно свести эту вероятность к нулю.
 
Верх