Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Как расставить окна "сеткой"?

Ответить
Настройки темы
Как расставить окна "сеткой"?

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Создал простой скрипт для расстановки окон сеткой,

Opt("WinTitleMatchMode",2)


$hList = WinList("[Title:Table]")
WinMove ($hList[1][1], "", 2720,600,800,566)
WinMove ($hList[2][1], "", 2720,0,800,566)
WinMove ($hList[3][1], "", 1920,0,800,566)
WinMove ($hList[4][1], "", 1920,600,800,566)
WinMove ($hList[5][1], "", 1120,600,800,566)
WinMove ($hList[6][1], "", 1120,0,800,566)
WinMove ($hList[7][1], "", 320,0,800,566)
WinMove ($hList[8][1], "", 320,600,800,566)

если окон нет, то мне выдает ошибку




если есть 1 окно он его ставит в нужную позицию, но выдает опять ту же ошибку, только ругаясь уже WinMove ($hList[2][1], "", 2720,0,800,566), либо выше, когда открыто 8 окон и запускаешь скрипт, все окна встаю по позициям, ошибок нет.

Ещё бы хотелось все это автоматизировать. при появлении первого окна перемещает его в первую позицию, дальше ждет 2 е окно, при появлении 2 го ставит во вторую и т.д. так 8 окон.

>>>> Window <<<<
Title:Table
Class: #32770
Position: 1920, 0
Size: 800, 566
Style: 0x940B0044
ExStyle: 0x00010010
Handle: 0x0000000000091304

все параметры кроме Handle постоянные.

Отправлено: 14:56, 03-05-2016

 

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Сделал вот так:
Opt("WinTitleMatchMode",2)

$hList = WinList("[Title:Table]")
Func _win()
If $hList[0][0] < 1 Then WinWait ($hList[0][0])
If $hList[0][0] >= 1 Then WinMove ($hList[1][1], "", 2720,600,800,566)
If $hList[0][0] >= 2 Then WinMove ($hList[2][1], "", 2720,0,800,566)
If $hList[0][0] >= 3 Then WinMove ($hList[3][1], "", 1920,0,800,566)
If $hList[0][0] >= 4 Then WinMove ($hList[4][1], "", 1920,600,800,566)
If $hList[0][0] >= 5 Then WinMove ($hList[5][1], "", 1120,600,800,566)
If $hList[0][0] >= 6 Then WinMove ($hList[6][1], "", 1120,0,800,566)
If $hList[0][0] >= 7 Then WinMove ($hList[7][1], "", 320,0,800,566)
If $hList[0][0] >= 8 Then WinMove ($hList[8][1], "", 320,600,800,566)
EndFunc
While 1
_win()
sleep (1000)
WEnd
ошибки пропали, все какие окна открыты расставляет, но новые окна которые открываются не трогает.

Отправлено: 16:01, 03-05-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата mishalenin:
но новые окна которые открываются не трогает. »
Естественно. Вы ведь запрашиваете перечень окон один раз до входа в бесконечный цикл.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:48, 03-05-2016 | #3


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, спасибо, помогло, но сейчас новая проблема, окна перетасовываются (((

Отправлено: 19:02, 03-05-2016 | #4


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата mishalenin:
но сейчас новая проблема, окна перетасовываются ((( »
Попробуйте предварительно сортировать их, например, по хэндлу. Но мне сам Ваш подход с постоянным ежесекундным перемещением окон не нравится.

Отправлено: 19:17, 03-05-2016 | #5


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Можно на примере хотя бы, на паре моих окн, я ещё совсем нуб! Спасибо огромное!

Отправлено: 10:32, 04-05-2016 | #6


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата mishalenin:
Можно на примере хотя бы, на паре моих окн, »
Нельзя. У меня нет Ваших окон. И, как я написал выше — мне не нравится сам данный подход.

Отправлено: 13:04, 04-05-2016 | #7


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Ок, спасибо за помощь.

Отправлено: 18:58, 04-05-2016 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Как расставить окна "сеткой"?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - Как удалить кнопки из окна "Мой компьютер"? Real Root Microsoft Windows 7 3 15-11-2012 20:55
Интерфейс - [решено] Нет "стеклянного" эффекта при наведении на "Свернуть все окна" aka_smile Microsoft Windows 7 5 21-09-2012 11:49
Интерфейс - [решено] как убрать ярлыки "документы" из окна "мой ПК"(НЕ с рабочего стола) w95w7 Microsoft Windows 2000/XP 3 29-06-2012 00:57
Интерфейс - Windows переодически отказывается открывать окна проводника"открыть","сохранить"и т.д vovdec Microsoft Windows 7 6 19-05-2010 13:49
[решено] Как вернуть ярлык "Свернуть все окна" R1der Microsoft Windows 2000/XP 9 26-06-2008 12:46




 
Переход