Что нового

CASE не хочет выполняться,условия соблюдаються

RAZERx7

Новичок
Сообщения
5
Репутация
0
Пролистайте код . Не выпоняеться последний CASE хоть окно и активно,цикл не остановлен
Код:
while 1
   $msg = GUIGetMsg()
   Switch $msg
	  case $gui_event_close 
		 Exit
	  case $start 
		 ToolTip("Активируем окно игры", 0, 0)
		 WinActivate ("[TITLE:блаблабла", "") 
		 while 1
			Select 
			   Case WinActive("[TITLE:блаблабла]", "") = 0 ;проверяем активно ли окно
				  ToolTip("Окно не найдено, нажмите 'Запуск бота' или у вас не запущена игра", 0, 0)
				  ExitLoop
			   case not WinActive("[TITLE:блаблабла]", "") = 0 ;логинимся если етого не сделали
				  PixelSearch (443, 567, 581, 598, 0xa90d0f, 10)
				  If @error=0 Then
					 MouseClick("", 503, 585, 2)
				  EndIf

                           ; [b]почему то не выполняються етот CASE,помогите[/b]
			   case not WinActive("[TITLE:блаблабла]", "") = 0 ;проверяем в меню мы или нет ; 
					 MsgBox(0, "привет", "привет")            
					 ToolTip("Бот в меню", 0, 0)
                           ; [b]почему то не выполняються етот CASE,помогите[/b]
			EndSelect
		 WEnd  
   EndSwitch
WEnd
 

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
RAZERx7
попробуй тот CASE сделать одним... Если сработает ищи причину....


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

RAZERx7
Можно заметить что 2 Case по условию совподает с 3тим... Возможно выполняется 2 -рой, и как извесно на другие он забивает...
 
Автор
R

RAZERx7

Новичок
Сообщения
5
Репутация
0
а как тогда етот CASE заменить? мне прсто их еще 7 шт как минимум. Тоесть мне надо что б все выполнились,не подскажите как реализовать?
 

joiner

Модератор
Локальный модератор
Сообщения
3,570
Репутация
632
RAZERx7
второе и третье case с одинаковым условием. поэтому выполняется только второе
WinActive возвращает только два результата. поэтому case может быть только два
вот из справки
Если более, чем одно из выражений Case истинно, выполняется только первый блок.
 
Автор
R

RAZERx7

Новичок
Сообщения
5
Репутация
0
да буду сейчас так и делать через if
 

joiner

Модератор
Локальный модератор
Сообщения
3,570
Репутация
632
можно сделать так
Код:
While 1
	$msg = GUIGetMsg()
	Switch $msg
		Case -3
			Exit
		Case $Button1
			ToolTip("Активируем окно игры", 0, 0)
			WinActivate("[TITLE:блаблабла", "")
			While 1
				$win = WinActive("[TITLE:блаблабла]", "")
				Switch $win
					Case 0 ;проверяем активно ли окно
						ToolTip("Окно не найдено, нажмите 'Запуск бота' или у вас не запущена игра", 0, 0)
						ExitLoop
					Case Not 0 ;логинимся если етого не сделали
						PixelSearch(443, 567, 581, 598, 0xa90d0f, 10)
						If @error = 0 Then
							MouseClick("", 503, 585, 2)
						EndIf
						$flag = 1;  окно существует и продолжаем
						Switch $flag ; проверка флага. если единица, то есть меню бота
							; [b]почему то не выполняються етот CASE,помогите[/b]
							Case 1 ;проверяем в меню мы или нет ;
								MsgBox(0, "привет", "привет")
								ToolTip("Бот в меню", 0, 0)
                                                                  ExitLoop
								; [b]почему то не выполняються етот CASE,помогите[/b]
							Case 0
								ExitLoop
						EndSwitch
				EndSwitch
				Sleep(100)
			WEnd
	EndSwitch
WEnd
 
Верх