Что нового

Новые приколы с перехода версий с 3.2.0.0 на 3.3.6.1

TERMINAL

Новичок
Сообщения
18
Репутация
1
После перехода с версии 3.2.0.0 на 3.3.6.1, после компиляции одного и того же файла, происходит следующее:
Скрипт, который стартует как ехе файл с CDROM
Код:
$CDROM_Drives = DriveGetDrive("CDROM")
If NOT @error Then
For $i = 1 To $CDROM_Drives[0]
		If FileExists($CDROM_Drives[$i] & "\Win51ip.sp3") Then
        CDTray($CDROM_Drives[$i], "Open")
		ToolTip("Заберите диск !" , @DesktopWidth/2,60,"Windows",1,2)
        Sleep(3000)
		ExitLoop
    EndIf
Next
EndIf

ToolTip("Выполняется перезагрузка !" , @DesktopWidth/2,60,"Windows",1,2)
Sleep(2000)
Shutdown(6)  ;Force a reboot
Exit


В версии 3.2.0.0 всё идёт на УРА, как по маслу, а в версии 3.3.6.1 после того как выезжает из CDROM диск, вылетает окошко WINDOWS, мол диск отсутствует в приводе, нажмите ОТМЕНА, ПОВТОР, ПРОДОЛЖИТЬ... и если ничего не нажимать, скрипт не доходит до выполнения перезагрузки.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Значит происходит обращение к CD в тот момент, когдла он недоступен. В какой именно функции сказать не могу, но отключить это сообщение можно так:

Код:
DllCall("kernel32.dll", "uint", "SetErrorMode", "uint", 1) ; SEM_FAILCRITICALERRORS
$CDROM_Drives = DriveGetDrive("CDROM")
If Not @error Then
	For $i = 1 To $CDROM_Drives[0]
		If FileExists($CDROM_Drives[$i] & "\Win51ip.sp3") Then
			CDTray($CDROM_Drives[$i], "Open")
			ToolTip("Заберите диск !", @DesktopWidth / 2, 60, "Windows", 1, 2)
			Sleep(3000)
			ExitLoop
		EndIf
	Next
EndIf
 
Автор
T

TERMINAL

Новичок
Сообщения
18
Репутация
1
Данная проблема решается путём добавления (почему то ?!) командой Sleep(5000) до и после...

Код:
Sleep(5000)
$CDROM_Drives = DriveGetDrive("CDROM")
If NOT @error Then
For $i = 1 To $CDROM_Drives[0]
        If FileExists($CDROM_Drives[$i] & "\Win51ip.sp3") Then
        CDTray($CDROM_Drives[$i], "Open")
        ToolTip("Заберите диск !" , @DesktopWidth/2,60,"Windows",1,2)
        Sleep(3000)
        ExitLoop
    EndIf
Next
EndIf

ToolTip("Выполняется перезагрузка !" , @DesktopWidth/2,60,"Windows",1,2)
Sleep(7000)
Shutdown(6)  ;Force a reboot
Exit
 
Верх