PDA

Показать полную графическую версию : Проверка свободного места на диске


WoRG
24-03-2010, 14:51
В программе работаю 2 дня :)
Написал автоустановку(наверное) к Aimp 2.60.551, но хотелось бы узнать, как сделать проверку свободного места на диске куда устанавливается программа и в случае нехватки запуск скриптов установки пропускается...

А вот и сам код написанный начальным языком, кто может оптимизировать, буду оч признателен указав на ошибки.

If WinExists(@ScriptName) Then Exit
AutoItWinSetTitle(@ScriptName)
;скрыть в системной панели индикатор AutoIt
AutoItSetOption("TrayIconHide", 1)
;Отображать текущую строку сценария с помощью индикатора системной панели в режиме отладки.
AutoItSetOption("TrayIconDebug", 1)
AutoItSetOption("SendKeyDelay", 10)
If ProcessExists ( "ps.exe" )<>0 Then
ProcessClose ( "ps.exe" )
ProcessWaitClose ( "ps.exe" )
EndIf
;нельзя блокировать при находящемся в памяти Punto Switcher-е - не будет работать установка
;блокируем мышь и клаву
If @OSType="WIN32_NT" Then BlockInput ( 1 )
Run("aimp_2.60.551.exe")
WinWait("Installer Language")
WinActivate("Installer Language")
WinWaitActive("Installer Language")
Send("{ENTER}")
WinWait("AIMP2 Setup", "мастер установки")
WinActivate("AIMP2 Setup", "мастер установки")
WinWaitActive("AIMP2 Setup", "мастер установки")
ControlClick( "AIMP2 Setup", "&Далее >", 1)
WinWait("AIMP2 Setup", "Лицензионное соглашение")
WinActivate("AIMP2 Setup", "Лицензионное соглашение")
WinWaitActive("AIMP2 Setup", "Лицензионное соглашение")
ControlClick( "AIMP2 Setup", "Принима&ю", 1)
WinWait("AIMP2 Setup", "Выбор папки установки")
WinActivate("AIMP2 Setup", "Выбор папки установки")
WinWaitActive("AIMP2 Setup", "Выбор папки установки")
ControlClick( "AIMP2 Setup", "&Далее >", 1)
WinWait("AIMP2 Setup", "Яндекс.Бар")
WinActivate("AIMP2 Setup", "Яндекс.Бар")
WinWaitActive("AIMP2 Setup", "Яндекс.Бар")
ControlClick( "AIMP2 Setup", "Настройка параметров", 1202)
ControlClick( "AIMP2 Setup", "Установить Яндекс.Бар", 1203)
ControlClick( "AIMP2 Setup", "&Далее >", 1)
WinWait("AIMP2 Setup", "Компоненты устанавливаемой программы")
WinActivate("AIMP2 Setup", "Компоненты устанавливаемой программы")
WinWaitActive("AIMP2 Setup", "Компоненты устанавливаемой программы")
Send("{UP}")
Send("{UP}")
Send("{UP}")
Send("{TAB}")
Send("{RIGHT}")
Send("{DOWN}")
Send("{DOWN}")
Send("{DOWN}")
Send("{SPACE}")
Send("{DOWN}")
Send("{DOWN}")
Send("{DOWN}")
Send("{DOWN}")
Send("{DOWN}")
Send("{RIGHT}")
Send("{DOWN}")
Send("{DOWN}")
Send("{DOWN}")
Send("{DOWN}")
Send("{DOWN}")
Send("{DOWN}")
Send("{SPACE}")
Send("{DOWN}")
Send("{SPACE}")
Send("{DOWN}")
Send("{SPACE}")
ControlClick ( "AIMP2 Setup", "&Далее >", 1)
WinWait("AIMP2 Setup", "Ярлыки")
WinActivate("AIMP2 Setup", "Ярлыки")
WinWaitActive("AIMP2 Setup", "Ярлыки")
ControlClick ( "AIMP2 Setup", "Создать ярлыки на панели быстрого запуска", 1202)
ControlClick( "AIMP2 Setup", "&Установить", 1)
WinWait("AIMP2 Setup", "Установка завершена")
WinActivate("AIMP2 Setup", "Установка завершена")
WinWaitActive("AIMP2 Setup", "Установка завершена")
ControlClick( "AIMP2 Setup", "&Далее >", 1)
WinWait("AIMP2 Setup", "Установка AIMP2 завершена!")
WinActivate("AIMP2 Setup", "Установка AIMP2 завершена!")
WinWaitActive("AIMP2 Setup", "Установка AIMP2 завершена!")
ControlClick( "AIMP2 Setup", "Запустить AIMP2", 1203)
ControlClick( "AIMP2 Setup", "Показать ReadMe", 1204)
ControlClick( "AIMP2 Setup", "Готово", 1)
BlockInput(0)

kaster
24-03-2010, 14:57
читай хелп по вот этому ключевому слову
DriveSpaceFree()

FlatX007
25-03-2010, 17:28
$iLimit_MB = 50
$sCommand = "aimp_2.60.512_rc3.exe /S"

$aDrive = StringSplit(@ProgramFilesDir, "\")

If DriveSpaceFree($aDrive[1] & '\') < $iLimit_MB Then
MsgBox(0, "", "Нет места на диске - " & $aDrive[1] & '\')
Exit
EndIf

$nResult = RunWait(@ComSpec & " /C " & @ScriptDir & '\' & $sCommand, "", @SW_HIDE)
ConsoleWrite("RunWait - " & $nResult & @CRLF)
If $nResult = 0 Then MsgBox(0, "", "Программа удачно установлена!")




© OSzone.net 2001-2012