Что нового

[Окна, Диалоги] Определитель появления новых окон (функция)

Dimmak

Знающий
Сообщения
185
Репутация
9
Помогите, пожалуйста, с функцией: :smile:

При появлении нового окна
MsgBox ( WindowTitle )
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Re: [Окна, Диалоги] Дэтэктор новых окон

Подробней объясни...
 
Автор
Dimmak

Dimmak

Знающий
Сообщения
185
Репутация
9
Re: [Окна, Диалоги] Дэтэктор новых окон

Запускаю скрипт Autoit...
1 Открываю окно блокнота
Выскакивает MsgBox c криком Блокнот...
2 Открываю окно справки AutoIt
MsgBox AutoIt

n Открываю окно n
MsgBox n...
Т.е. Window event ;)




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

Я это приблизительно так вижу...

Код:
While

$Handle = WinGetHandle("[active]")
Sleep ( 300 )
$Handle1 = WinGetHandle("[active]")

If ( $Handle не равно $Handle1 )
msgbox ( "Новое окно", "Windowtitle" )
EndIf
Wend

Как правильно организовать цикл чтоб через временной интервал он опрашивал активное окно?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: [Окна, Диалоги] Дэтэктор новых окон

Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Модератор.
 
Автор
Dimmak

Dimmak

Знающий
Сообщения
185
Репутация
9
Re: [Окна, Диалоги] Дэтэктор новых окон

madmasles
Не могу понять собственную ошибку.
Код, который я написал выше не является кодом Autoit, и по-этому я написал его
Код:
здесь
 

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Re: [Окна, Диалоги] Дэтэктор новых окон

Код:
While 1
    Sleep ( 300 )
    $Handle = WinGetHandle("[active]")
    If $Handle Then
        msgbox ( "Новое окно", WinGetTitle($Handle))
    EndIf
Wend
 
Автор
Dimmak

Dimmak

Знающий
Сообщения
185
Репутация
9
Re: [Окна, Диалоги] Дэтэктор новых окон

Viktor1703, спасибо.
А что значит while 1?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Автор
Dimmak

Dimmak

Знающий
Сообщения
185
Репутация
9
Viktor1703
Спасибо еще раз. Сонный я стал и...
по-этому не дочитал до этой строчки:
To create an infinite loop, you can use a non-zero number as the expression.

CreatoR, поместил код в Autoit_code. Надеюсь сейчас все правильно.
:ok:
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Dimmak
и еще, на будущее, не нужно набирать код в поле для сообщений. копируй и вставляй проблемный кусок кода непосредственно из тела скрипта, а после вставки не редактируй в этом поле. это избавит помогающих от многих недоразумений
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Dimmak,
Новые окна не обязательно должны быть активными.
 
Автор
Dimmak

Dimmak

Знающий
Сообщения
185
Репутация
9
madmasles
Новые окна не обязательно должны быть активными.
Интересуют пока только активные окна.

Прошу помощи в оптимизации кода:

К примеру задача следующего характера:
Сделать каждое новое активное окно полупрозрачным.
Но если окно уже является полупрозрачным, что будет более
правильно??
повторить это действие: WinSetTrans ( ;Handle , '', 127 )
или все таки нужно записать в массив окна, которые являются уже прозрачными, а затем уже опрашивать массив на наличие конкретного окна и его прозрачность??

Код:
While 1

$Handle = WinGetHandle("[active]")
Sleep ( 300 )
$Handle1 = WinGetHandle("[active]")

If ( $Handle <> $Handle1 )
WinSetTrans ( Handle , '', 127 )
EndIf
Wend
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Dimmak [?]
К примеру задача следующего характера:Сделать каждое новое активное окно полупрозрачным

Предупреждение За нарушение общих правил (пункт В.4):
Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.


С уважением, ваш Модератор.
 
Верх