Что нового

Реакция на нажатие кнопок в окне MsgBox.

uman

Новичок
Сообщения
25
Репутация
0
Имеем окно полученное командной MsgBox с кнопкам: OK и CANCEL.
Как выполнить одно действие при нажатии кнопки OK, другое действие при нажатии кнопки CANCEL.
Суть мне ясна, ключевое выражение: "Возвращаемое значение". С синтаксисом разобраться не могу, новичок я.
Заранее спасибо.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Код:
$button = MsgBox(1, "", "нажми на кнопку")
While 1
	If $button = 1 Then $button = MsgBox(1, "", "нажал <Ок>")
	If $button = 2 Then $button = MsgBox(1, "", "нажал <Cansel>")
WEnd


Код:
$button = MsgBox(1, "", "нажми на кнопку")
While 1
	Switch $button
		Case 1
			$button = MsgBox(1, "", "нажал <Ок>")
		Case 2
			$button = MsgBox(1, "", "нажал <Cansel>")
	EndSwitch
WEnd
 
Автор
U

uman

Новичок
Сообщения
25
Репутация
0
Запустил полученный код. Получил бесконечный цикл. Окно с кнопками OK и CANCEL . Нажимаю кнопку OK или CANCEL получаю новое такое же окно.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
:suicide:

а вопрос какой?

Попробуй без цикла...
Код:
$button = MsgBox(1, "", "нажми на кнопку")
If $button = 1 Then MsgBox(1, "", "нажал <Ок>")
If $button = 2 Then MsgBox(1, "", "нажал <Cansel>")
 
Автор
U

uman

Новичок
Сообщения
25
Репутация
0
Нажимаешь кнопку например OK выполняется действие разово.
В данном коде получатся:
Нажимаешь кнопку OK, выскакивает окно нажата OK, а внизу две кнопки OK и CANCEL. нажимаешь. CANCEL Выскакивает окно нажата CANCEL, а внизу две кнопки....
Бесконечный цикл, однако...
Хотелось бы разово: Одно нажатие- одно окно.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Код:
$button = MsgBox(1, "", "нажми на кнопку")
Switch $button
        Case 1
            MsgBox(0, "", "нажал <Ок>")
        Case 2
            MsgBox(0, "", "нажал <Cansel>")
EndSwitch
 
Автор
U

uman

Новичок
Сообщения
25
Репутация
0
Спасибо, работает.
Осталось только не понятно почему при нажатии кнопки OK( MsgBox(0, "", "нажал <Ок>") и возвращаемом значении 1 не происходит зацикливания как в предыдущем коде.
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
Может так нагляднее:?
Код:
If MsgBox ( 1, "", "Нажми кнопку")=1 Then
	ToolTip("Нажпта кнопка <Ок>")
Else
	ToolTip("Нажпта кнопка Cansel")
EndIf
	Sleep(1000)
	ToolTip('')
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Осталось только не понятно почему при нажатии кнопки OK( MsgBox(0, "", "нажал <Ок>") и возвращаемом значении 1 не происходит зацикливания как в предыдущем коде.

Начни с основ
http://autoit-script.ru/autoit3_docs/keywords/While.htm
http://autoit-script.ru/autoit3_docs/keywords/If.htm
http://autoit-script.ru/autoit3_docs/keywords/Switch.htm
 
Автор
U

uman

Новичок
Сообщения
25
Репутация
0
Спасибо за ссылки.
Просмотрев написанное(по ссылкам) я не нашел прямого ответа почему произошло зацикливание в одном из примеров и почему при возвращаемоем значении 1(кнопка OK), не поизошло зацикливание, как в одном из примеров. Видимо ответ где то глубже, а хотелось бы сразу получить ответ. Буду изучать. Спасибо.
 
Верх