Что нового

[Окна, Диалоги] Проблемы с циклом If...ElseIf

Авдей

Новичок
Сообщения
12
Репутация
0
Всем привет!
Подскажите плиз!!
Код:
$1="Входящие"
$2="Информация..."
 if winwait($1) then winclose($1)

все отлично работает.Но как только пытаюсь сделать типа:
Код:
[autoit]
$1="Входящие"
$2="Информация..."
 if winwait($1) then winclose($1)
  elseif winwait($2) winclose($2)
     endif

сразу же выдает ошибку, перестает понимать русский язык, в пути к скрипту показывает ????? и плюс показывает ошибку в $2="????????..."
в общем не получается никак сделать цикл :(
И еще, если сделать переменную типа $win="Входящие" то все работает, а если типа $win[1]="Входящие" то опять же выдает ошибку что показана ранее..в чем проблема?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Авдей,
Код:
$1 = "Входящие"
$2 = "Информация..."
If WinWait($1) Then
	WinClose($1)
ElseIf WinWait($2) Then
	WinClose($2)
EndIf
If...ElseIf...Else...EndIf
 
Автор
А

Авдей

Новичок
Сообщения
12
Репутация
0
В этом случае обрабатывается почему только то что находится в $1
Код:
$1 = "new  0 - Notepad++"
$2 = "Безымянный — Блокнот"

If WinWait($1) Then
    WinClose($1)
ElseIf WinWait($2) Then
    WinClose($2)
 EndIf


автоматически закрывает только Notepad++. если после запуска скрипта открыть блокнот сначала, то он на него не реагирует почему то.И на любое другое окно под $2.
примеры читаю, пробую..или я чего то не понимаю, или одно из двух :(
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Авдей [?]
В этом случае обрабатывается почему только то что находится в $1
Код:
$1 = "new  0 - Notepad++"
$2 = "Безымянный — Блокнот"

If WinWait($1) Then WinClose($1)
If WinWait($2) Then WinClose($2)
 
Автор
А

Авдей

Новичок
Сообщения
12
Репутация
0
Не помогает :(
$1 = "new 0 - Notepad++" обрабатывается,
$2 = "Безымянный — Блокнот" не обрабатывается

если меняю местами
Код:
If WinWait($2) Then WinClose($2)
If WinWait($1) Then WinClose($1)


то обрабатывается If WinWait($2) Then WinClose($2).В общем то что первым идет


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

Получилось при условии такого кода
Код:
$i=1
$1 ="new  0 - Notepad++"
$2 ="Безымянный — Блокнот"
while $i
Select
    Case $1 = "new  0 - Notepad++"
        call("Close")
    Case $2 = "Безымянный — Блокнот"
        call("Close")
	 EndSelect
	 $i=$i+1
WEnd

Func Close()
   WinClose($1)
   WinClose($2)
EndFunc


а вот теперь ответ порождает новый вопрос :(
как в переменную вставить второй параметр? то есть типа $1=winwait("new 0 - Notepad++","пробный скрипт")?
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Авдей
Так?
Код:
$1 = "new  0 - Notepad++"
$2 = "Безымянный — Блокнот"

While 1
  If WinWait($1, "", 1) Then WinClose($1)
  If WinWait($2, "", 1) Then WinClose($2)
WEnd


Или так?
Код:
$1 = "new  0 - Notepad++"
$2 = "Безымянный — Блокнот"

While Sleep(10)
  WinClose($1)
  WinClose($2)
WEnd
 
Автор
А

Авдей

Новичок
Сообщения
12
Репутация
0
Хм..первый код работает вроде! Завтра на работе тестировать буду и разбирать что и как :smile: Спасибо.
 
Верх