Цитата Grammaton Cleric:
"не мог бы ты объяснить?" »
|
без проблем - у меня лобовой вариант привел к дублированию кода (MsgBox):
Код:

While 1
If DriveStatus("A:")=="READY" Then
If FileExists('A:\gk.db3') Then
ExitLoop
Else
If MsgBox (36, 'Предупреждение','Автоустановка программы, Перед продолжением установки ТРЕБУЕТСЯ вставить в Floppy дисковод, '&@CRLF& _
'дискету пользователя, в противном случае работа не будет продолжена.'&@CRLF& _
'Вы хотите продолжать работу?') = 7 Then Exit
EndIf
Else
If MsgBox (36, 'Предупреждение','Автоустановка программы, Перед продолжением установки ТРЕБУЕТСЯ вставить в Floppy дисковод, '&@CRLF& _
'дискету пользователя, в противном случае работа не будет продолжена.'&@CRLF& _
'Вы хотите продолжать работу?') = 7 Then Exit
EndIf
Sleep(100)
WEnd
MsgBox(48, "Информация", "Запущена установка программы!")
поэтому я ввел некий флаг
$Next, который изначально равен FALSE (aka "красный свет", TRUE - "зеленый"),
далее (с учетом изменений):
- если вставлен диск, то
DriveStatus() дает "зеленый", иначе - "красный";
-
FileExists() может изменить цвет на "красный",
но только с "зеленого" (иначе будет ошибка);
- если после всех проверок "зеленый", то скрипт выходит из цикла и продолжает работу;
- если "красный", то попадаем на предупреждение и далее либо выход из скрипта, либо по циклу до "зеленого"