warten bis DriveStatus "READY" ist

  • Wie mach ich dass das Script an zeile 71 wartet solange bis DriveStatus("E:")="READY" ist?


    hier das script:

    Spoiler anzeigen
    [autoit]

    ;Dieses Script prüft ob die USB Festplatte angeschlossen ist oder nicht.
    ;wenn die Festplatte nicht mehr angeschlossen ist wird das Script per LAN USB Utility die Festplatte wieder verbinden und danach Freigeben.
    ;In der DriveConLog.txt logdatei wird alles geloggt.
    Opt("TrayAutoPause", 0)
    Global $AllDrives
    Global $Drive
    Global $DriveActive=0
    Global $_LogText
    Global $_LogFile

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $AllDrives=DriveGetDrive("REMOVABLE")
    If IsArray($AllDrives)=1 Then
    $Drive=$AllDrives[1]
    _Log("Programm wurde gestartet.")
    Angeschlossen()
    EndIf
    Sleep(1000)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func Angeschlossen()
    Sleep(10000)
    While DriveStatus("F:")="READY" Or DriveStatus("E:")="READY"
    If $DriveActive=0 Then
    _Log("Festplatte ist aktiv.")
    $DriveActive=1
    EndIf
    Sleep(10000)
    WEnd
    $DriveActive=0
    _Log("Festplatte ist inaktiv.")
    Abgeschlossen()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func Abgeschlossen()
    Sleep(200)
    WinGetHandle("LAN USB Utility")
    If @error Then
    _Log("LAN USB Utility.exe wird neu gestartet, weil das Programm abgestuerzt ist.")
    ProcessClose("LAN USB Utility.exe")
    Sleep(1000)
    Run("C:\Programme\Sharkoon\LAN USB Utility\LAN USB Utility.exe")
    EndIf
    ControlClick("LAN USB Utility", "", "[CLASSNN:Button1]")
    Sleep(1000)
    ControlClick("LAN USB Utility", "", 1002, "left", 1, 52, 28)
    Sleep(100)
    ControlClick("LAN USB Utility", "", "[CLASSNN:Button2]")
    Sleep(60000)
    _Log("Festplatte wird verbunden...")
    Freigeben()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func Freigeben()
    If DriveStatus("F:")="READY" Then
    _Log("Festplatte F: wird als Name:Backup freigegeben...")
    _RunDos("net share Backup=F:")
    _Log("Festplatte ist Freigegeben.")
    ElseIf DriveStatus("E:")="READY" Then
    _RunDOS("net share Backup=E:")
    _Log("Festplatte E: wird als Name:Backup freigegeben...")
    _Log("Festplatte ist Freigegeben.")
    EndIf
    Sleep(1000)
    If DriveStatus("E:")="READY" Then
    Angeschlossen()
    ElseIf
    Run("Email.exe", @Scriptdir)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    EndFunc
    Func _RunDOS($sCommand)
    Local $nResult = RunWait(@ComSpec & " /C " & $sCommand, "", @SW_HIDE)
    Return SetError(@error, @extended, $nResult)
    EndFunc
    Func _Log($_LogText)
    $_LogFile=FileOpen(@DesktopDir&"\DriveConLog.log", 1)
    FileWrite(@DesktopDir&"\DriveConLog.log",@CRLF&@MDAY&"."&@MON&"."&@YEAR&" - "&@HOUR&":"&@MIN&":"&@SEC&" "&$_LogText)
    FileClose($_LogFile)
    EndFunc

    [/autoit]


    danke für die hilfe

    Einmal editiert, zuletzt von nitoben (22. April 2010 um 18:20)