雷明登剃须刀价格:The following files from Microsoft's WAIK

来源:百度文库 编辑:九乡新闻网 时间:2024/04/30 18:41:29
The following files from Microsoft's WAIK
ImageX.exe
wimfltr.sys
wimfltr.dll
wimgapi.dll

1. Copy all the files above into the same directory. (Extracting the zip files.)
2. Convert the autoIT code below to an ImageXGUI_v1-0.exe.(RTConsole.exe and DiskPartitioner.exe will be embedded in the covertedImageXGUI_v1-0.exe so you don't need those files after compiling).
3. I have this running on WinPE 2.0 and from XPSP2.

[ code='text' ]    ( ExpandCollapse - Popup )
#include 
#include
#include
#include
#include
#include
#include

Dim $avDriveMapAdd[7]
$avDriveMapAdd[0]   = "Unknown Error"
$avDriveMapAdd[1]   = "Undefined / Other error"
$avDriveMapAdd[2]   = "Access to the remote share was denied"
$avDriveMapAdd[3]   = "The device is already assigned"
$avDriveMapAdd[4]   = "Invalid device name"
$avDriveMapAdd[5]   = "Invalid remote share"
$avDriveMapAdd[6]   = "Invalid password"

Dim $avPing [5]
$avPing[0] = "Unknown Error"
$avPing[1] = "Host is offline"
$avPing[2] = "Host is unreachable"
$avPing[3] = "Bad destination"
$avPing[4] = "Other errors"

; Global Settings
;
Global $line1
Global $line3
Dim $gCaptureSource
Dim $gCaptureDestination
Dim $gCaptureCompression
Dim $gCaptureFlags
Dim $gCaptureConfig
Dim $gCaptureBoot
Dim $gCaptureCheck
Dim $gCaptureName
Dim $gCaptureDescription

Dim $gApplySource
Dim $gApplyDestination
Dim $gApplyVerify
Dim $gApplyName
Dim $imageinfo
Dim $gMapLetter
Dim $gMapUser
Dim $gMapPassword
Dim $gMapShare
Dim $sIni = @ScriptDir & "\gimagex.ini"
Dim $res
Dim $foo
Dim $gCaptureDiag
Dim $gApplyDiag

;
;Check for ImageX required files
;
If FileExists(@ScriptDir & "\imagex.exe") Then;File Found
ElseIf FileExists(@ScriptDir & "\wimfltr.dll") Then;File Found
ElseIf FileExists(@ScriptDir & "\wimfltr.sys") Then;File Found
ElseIf FileExists(@ScriptDir & "\wimgapi.dll") Then;File Found
Else
    Msgbox(4096,"ImageXGUI", "You are missing one of the required files in the current folder: " & @ScriptDir & @CRLF & "ImageX will not function without these files!" & _
    @CRLF & @CRLF & "imagex.exe" & @CRLF & "wimfltr.dll" & @CRLF & "wimfltr.sys" & @CRLF & "wimgapi.dll")
EndIf  

;
; Create the main GUI
;
GUICreate("GImageX - ImageX GUI Wrapper", 640, 380, -1, -1 )
$hTab = GUICtrlCreateTab(10, 10, 620, 355)
$BaseX = 20
$BaseY = 35


; Drive Map Tab

$hTab_0 = GUICtrlCreateTabItem(" Drive Map ")

$CurX = $BaseX
$CurY = $BaseY

$CurY = $CurY + 10
GuiCtrlCreateGroup("Drive Mapping", $CurX+10, $CurY, 580, 135)
$CurY = $CurY + 18

GUICtrlCreateLabel("Letter", $CurX+20, $CurY+3)
$hMapLetter = GUICtrlCreateCombo("F:", $CurX+85, $CurY, 100, 500, $CBS_DROPDOWNLIST)
GUICtrlSetData(-1, "G:|H:|I:|J:|K:|L:|M:|N:|O:|P:|Q:|R:|S:|T:|U:|V:|W:|X:|Y:|Z:")

$CurY = $CurY + 27
GUICtrlCreateLabel("UNC Path", $CurX+20, $CurY+3)
$hMapShareEdit = GUICtrlCreateInput("\\Server\Sharename", $CurX+85, $CurY, 300)

$CurY = $CurY + 27
GUICtrlCreateLabel("Username", $CurX+20, $CurY+3)
$hMapUserEdit = GUICtrlCreateInput("Domain.com\%Username%", $CurX+85, $CurY, 300)

$CurY = $CurY + 27
GUICtrlCreateLabel("Password", $CurX+20, $CurY+3)
$hMapPasswordEdit = GUICtrlCreateInput("Password", $CurX+85, $CurY, 300, -1, $ES_PASSWORD)

$hMapButtonGo = GUICtrlCreateButton("&Map!", $BaseX+500, $BaseY+290, 100)

; Capture Tab
;
$hTab_1 = GUICtrlCreateTabItem("  Capture  ")

$CurX = $BaseX
$CurY = $BaseY

; File Group
$CurY = $CurY + 10
GuiCtrlCreateGroup("WIM Image", $CurX+10, $CurY, 580, 155)
$CurY = $CurY + 18
GUICtrlCreateLabel("Source", $CurX+20, $CurY+3)
$hCaptureSourceEdit = GUICtrlCreateInput("", $CurX+85, $CurY, 300)
$hCaptureSourceBrowse = GUICtrlCreateButton("Browse", $CurX+395, $CurY-2)

$CurY = $CurY + 27
GUICtrlCreateLabel("Destination", $CurX+20, $CurY+3)
$hCaptureDestEdit = GUICtrlCreateInput("MyWim.wim", $CurX+85, $CurY, 300)
$hCaptureDestBrowse = GUICtrlCreateButton("Browse", $CurX+395, $CurY-2)

$CurY = $CurY + 27
GUICtrlCreateLabel("Compression", $CurX+20, $CurY+3)
$hCaptureCompression = GUICtrlCreateCombo("Maximum", $CurX+85, $CurY, 100, 500, $CBS_DROPDOWNLIST)
GUICtrlSetData(-1, "Fast")

$CurY = $CurY + 27
GUICtrlCreateLabel("Name", $CurX+20, $CurY+3)
$hCaptureNameEdit = GUICtrlCreateInput("My Image Name", $CurX+85, $CurY, 300)

$CurY = $CurY + 27
GUICtrlCreateLabel("Description", $CurX+20, $CurY+3)
$hCaptureDescEdit = GUICtrlCreateInput("My Image Description", $CurX+85, $CurY, 300)

; Options Group
$CurY = $CurY + 40
GuiCtrlCreateGroup("Options", $CurX+10, $CurY, 580, 100)
$CurY = $CurY + 18

GUICtrlCreateLabel("/config", $CurX+20, $CurY+3)
$hCaptureConfigEdit = GUICtrlCreateInput("", $CurX+85, $CurY, 300)
$hCaptureConfigBrowse = GUICtrlCreateButton("Browse", $CurX+395, $CurY-2)

$CurY = $CurY + 27
GUICtrlCreateLabel("Switches", $CurX+20, $CurY+3)
$hCaptureFlagsEdit = GUICtrlCreateInput("", $CurX+85, $CurY, 300)

$CurY = $CurY + 27
$hCaptureBootCheck = GUICtrlCreateCheckbox("/boot (WinPE Images Only) ", $CurX+20, $CurY)
$hCaptureCheckCheck = GUICtrlCreateCheckbox("/check", $CurX+190, $CurY)
$hCaptureDiagCheck = GUICtrlCreateCheckbox("Display ImageX Console Window", $CurX+260, $CurY)

$hCaptureButtonGo = GUICtrlCreateButton("&Capture!", $BaseX+500, $BaseY+290, 100)


;
; Apply Tab
;
$hTab_2 = GUICtrlCreateTabItem("  Apply  ")

$CurX = $BaseX
$CurY = $BaseY

; File Group
$CurY = $CurY + 10
GuiCtrlCreateGroup("WIM Image", $CurX+10, $CurY, 580, 205)
$CurY = $CurY + 18
GUICtrlCreateLabel("1. Source", $CurX+20, $CurY+3)
$hApplySourceEdit = GUICtrlCreateInput("MyWim.wim", $CurX+85, $CurY, 300)
$hApplySourceBrowse = GUICtrlCreateButton("Browse", $CurX+395, $CurY-2)

$CurY = $CurY + 27
GUICtrlCreateLabel ("Input Image Number", $CurX+15, $CurY+30, 70, 30)
$hApplyName = GUICtrlCreateInput("1", $CurX+85, $CurY+30, 40, 20)
$hApplyNameBrowse= GUICtrlCreateButton("2. Poll Image Number", $CurX+15, $CurY+1)
$treeview = GUICtrlCreateTreeView ( 150, 90, 450, 120, BitOr($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)
$CurY = $CurY + 27
GUICtrlCreateLabel("Destination", $CurX+20, $CurY+103)
$hApplyDestEdit = GUICtrlCreateInput("", $CurX+85, $CurY+100, 300)
$hApplyDestBrowse = GUICtrlCreateButton("Browse", $CurX+395, $CurY+98)

; Options Group
$CurY = $CurY + 40
GuiCtrlCreateGroup("Options", $CurX+10, $CurY+100, 580, 50)
$CurY = $CurY + 18
Dim $hReboot = GUICtrlCreateCheckbox ( "Automatically Reboot", $CurX+20, $CurY+105, 125, 15)
$hApplyVerifyCheck = GUICtrlCreateCheckbox("/verify", $CurX+150, $CurY+105, 50, 15 )
$hApplyDiagCheck = GUICtrlCreateCheckbox("Display ImageX Console Window", $CurX+210, $CurY+105, 200, 15 )

Dim $hDPart = GUICtrlCreateButton ( "Partition/Format", $BaseX+390, $BaseY+290, 100)
$hApplyButtonGo = GUICtrlCreateButton("&Apply!", $BaseX+500, $BaseY+290, 100)

;
; Set Default Options
;
LoadSettings()
SettingsToGUI()
;
; The GUI message loop
;
GuiSetState()
While 1
    $msg = GuiGetMsg()
    Select
       ; General Messages
        Case $msg = $GUI_EVENT_CLOSE
            ExitLoop
           
           ; Capture Messages
        Case $msg = $hCaptureButtonGo
            DoCapture()
        Case $msg = $hCaptureSourceBrowse
            $sDir = BrowseForDirectory()
            if $sDir Then GUICtrlSetData($hCaptureSourceEdit, $sDir)
        Case $msg = $hCaptureDestBrowse
            $sFile = BrowseForWimToSave()
            if $sFile Then GUICtrlSetData($hCaptureDestEdit, $sFile)
        Case $msg = $hCaptureConfigBrowse
            $sFile = BrowseForConfig()
            If $sFile Then GUICtrlSetData($hCaptureConfigEdit, $sFile)

           ; Apply Messages
        Case $msg = $hDPart
            MsgBox(4144, "DiskPart GUI", "*** USE AT YOUR OWN RISK *** | *** USE AT YOUR OWN RISK ***" & @CRLF & @CRLF & _
            "      *You may need to reboot for the changes to take effect.*" & @CRLF & @CRLF & _
            "     If you just format a partition you do not need to reboot.")
            FileInstall("DiskPartitioner.exe", @ScriptDir & "\DiskPartitioner.exe")
            RunWait(@ScriptDir & '\DiskPartitioner.exe')
            FileDelete(@ScriptDir & "\Diskpartitioner.exe")
        Case $msg = $hApplyNameBrowse
            PollImage()
        Case $msg = $hApplyButtonGo
            DoApply()
        Case $msg = $hApplyDestBrowse
            $sDir = BrowseForDirectory()
            if $sDir Then GUICtrlSetData($hApplyDestEdit, $sDir)
        Case $msg = $hApplySourceBrowse
            $sFile = BrowseForWimToLoad()
            if $sFile Then GUICtrlSetData($hApplySourceEdit, $sFile)

         ; Drive Map Messages
        Case $msg = $hMapButtonGo
            DoMapping()

        Case Else
           ;;;
    EndSelect
WEnd

Exit


;
; FUNCTIONS
;

Func BrowseForDirectory()
    $sDir = FileSelectFolder("Select source folder", "")
    If StringRight($sDir, 1) = "\" Then $sDir = StringTrimRight($sDir, 1)
    Return $sDir
EndFunc


Func BrowseForWimToSave()
    $sFile = FileSaveDialog( "Select destination file", "", "WIM Files (*.wim)", 3)
    If @error Then Return ""
   
    If StringRight($sFile, 4) <> ".wIM" Then $sFile = $sFile & ".wim"

    Return $sFile
EndFunc


Func BrowseForWimToLoad()
    $sFile = FileOpenDialog( "Select source file", "", "WIM Files (*.wim)", 3)
    If @error Then Return ""

    Return $sFile
EndFunc


Func BrowseForConfig()
    $sFile = FileOpenDialog("Select config file", @ScriptDir, "INI files (*.ini)", 1)
    If @error Or StringRight($sFile, 4) <> ".ini" Then Return ""

    Return $sFile
EndFunc


Func DoCapture()
    $sCmd = '"' & @ScriptDir & '\imagex.exe"'
   
    If $gCaptureConfig <> "" Then $sCmd = $sCmd & ' /config "' & $gCaptureConfig & '"'
   
    If $gCaptureCompression = "fast" Then
        $sCmd = $sCmd & " /compress fast"
    Else
        $sCmd = $sCmd & " /compress maximum"
    EndIf
   
    If $gCaptureCheck = 1 Then $sCmd = $sCmd & " /check"
    If $gCaptureBoot = 1 Then $sCmd = $sCmd & " /boot"
    If $gCaptureFlags <> "" Then $sCmd = $sCmd & ' ' & $gCaptureFlags
   
;   $sCmd = $sCmd & ' /capture /scroll "' & $sDir & '" "' & $sFile & '"'
    $sCmd = $sCmd & ' /capture /scroll "' & GUICtrlRead($hCaptureSourceEdit) & '" "' & GUICtrlRead($hCaptureDestEdit) & '"'
    $sCmd = $sCmd & ' "' & GUICtrlRead($hCaptureNameEdit) & '" "' & GUICtrlRead($hCaptureDescEdit) & '"'
    If GUICtrlRead($hCaptureDiagCheck) = '1' Then
        $ret = RunWait($sCmd, @WorkingDir, @SW_SHOW)
    Else
        $ret = ShowProgress($sCmd, 'Capturing...')
    EndIf
   ;$ret = RunWait($sCmd, @WorkingDir, @SW_SHOW)
    If $ret = '0' Then
        SplashTextOn ( 'ImageX Status', 'Image Successfully Created!', 400, 50, -1, -1, 32, "Tahoma", 14, 500)
        Sleep (3000)
        SplashOff ()
    Else
        SplashTextOn ( 'ImageX Status', 'ImageX.exe ERROR : ' & $ret, 400, 50, -1, -1, 32, "Tahoma", 14, 500)
        Sleep (5000)
        SplashOff ()
    EndIf

EndFunc

Func PollImage ()
    Dim $nitem
    Dim $imageinfo = " "
    $read = GUICtrlRead ($hApplySourceEdit)
    $sCmd = "imagex.exe"
    If $read = "" Then
        MsgBox (48, "Input required", "Please select the source")
    Else
        $sCmd = $sCmd & ' /info "' & $read & '"'
    EndIf
   ;MsgBox(0, "scmd", $sCmd)
    Dim $ret = Run(@ComSpec & " /c " & $sCmd & '"', @ScriptDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD )
    While 1
    $line = StdoutRead($ret)   
    If $line = "" Then  ExitLoop
    $imageinfo = $imageinfo & $line
;   MsgBox(0, "RunDOS", $line)
    If @error Then ExitLoop
    WEnd
     _GUICtrlTreeViewDeleteAllItems ($treeview)
    $aImageInfo = _StringBetween ( $imageinfo, "", "" )
        If @error Then $aImageInfo = _ArrayCreate("")
    $aImageDesc = _StringBetween ( $imageinfo, "", "" )
        If @error Then $aImageDesc = _ArrayCreate("")
    $aImageFileCount = _StringBetween ( $imageinfo, "", "" )
        If @error Then $aImageFileCount = _ArrayCreate("")
   ;$aImageBuild = _StringBetween ( $imageinfo, "", "" )
;   If @error Then $aImageBuild = _ArrayCreate("")
    $imagenumber = UBound ($aImageInfo, 1)
        If @error Then $imagenumber = _ArrayCreate("")
    $x = 0
    Dim $nitem[$imagenumber]
    Do
    $nitem[$x] = GUICtrlCreateTreeViewItem ( "Image: #" & $x +1 & ": " & $aImageInfo[$x], $treeview )
    GUICtrlCreateTreeViewItem ( "Description: " & $aImageDesc [$x], $nitem[$x] )
    GUICtrlCreateTreeViewItem ( "File Count: " & $aImageFileCount [$x], $nitem[$x] )
   ;GUICtrlCreateTreeViewItem ( "Build Version: " & $aImageBuild [$x], $nitem[$x] )
    GUICtrlSetState($nitem[$x], $GUI_DEFBUTTON)
    $x = $x + 1
    Until $x = $imagenumber
EndFunc

Func DoApply()
    If StringInStr(GUICtrlRead(47, 1),'Image: #') > 0 Then
        Dim $arINum = StringSplit(GUICtrlRead(47, 1), '#')
        GUICtrlSetData($hApplyName, StringLeft($arINum[2],1))
    Else
        Msgbox(4096,"Apply", "You must select the image to apply." & @CRLF & "Example: Image: #1")
        Return
    EndIf
    $sCmd = '"' & @ScriptDir & '\imagex.exe"'
       
    If $gApplyVerify = 1 Then $sCmd = $sCmd & " /verify"
    $sCmd = $sCmd & ' /apply /scroll "' & GUICtrlRead($hApplySourceEdit) & '" "' & GUICtrlRead($hApplyName) & '" "' & GUICtrlRead($hApplyDestEdit) & '"'
   
    If GUICtrlRead($hApplyDiagCheck) = '1' Then
        $ret = RunWait($sCmd, @WorkingDir, @SW_SHOW)
    Else
        $ret = ShowProgress($sCmd, 'Applying...')
    EndIf
    If $ret = '0' Then
        SplashTextOn ( 'ImageX Status', 'Image Successfully Applied!', 400, 50, -1, -1, 32, "Tahoma", 14, 500)
        Sleep (3000)
        SplashOff ()
    Else
        SplashTextOn ( 'ImageX Status', 'ImageX.exe ERROR : ' & $ret, 400, 50, -1, -1, 32, "Tahoma", 14, 500)
        Sleep (5000)
        SplashOff ()
    EndIf
    $Rebootstate = GUICtrlRead ($hReboot)
    If $Rebootstate = 1 Then
    _RunDOS("Start wpeutil reboot")
    EndIf
EndFunc

Func DoMapping()
    $gMapLetter = GUICtrlRead ( $hMapLetter )
    DriveMapDel($gMapLetter)
    $gMapShare = GUICtrlRead ( $hMapShareEdit );IniRead($sIni, "Map", "Share", "\\SERVER\SHARE")
    $VistaAccount = GUICtrlRead ( $hMapUserEdit )
    $VistaPwd = GUICtrlRead ( $hMapPasswordEdit )
;   Msgbox(0,"MAP",$gMapLetter & $gMapShare & $VistaAccount & $VistaPwd)
    $res = DriveMapAdd($gMapLetter, $gMapShare, 0, $VistaAccount, $VistaPwd)
   
    If $res Then
        SplashTextOn ( 'Mapping Drive...', 'Drive successfully mapped!', 250, 50, -1, -1, 32, "Tahoma", 14, 500)
        sleep (2000)
        SplashOff()
    Else
        MsgBox(16, "Drive Mapping", "Error mapping drive! Code: " & $avDriveMapAdd[@error])
    EndIf  
EndFunc

Func LoadSettings()
    $sIni = @ScriptDir & "\gimagex.ini"
   
    $gCaptureSource = IniRead($sIni, "CAPTURE", "Source", "")
    $gCaptureDestination = IniRead($sIni, "CAPTURE", "Destination", "MyWim.wim")
    $gCaptureCompression = IniRead($sIni, "CAPTURE", "Compression", "Maximum")
    $gCaptureFlags = IniRead($sIni, "CAPTURE", "Flags", "")
    $gCaptureConfig = IniRead($sIni, "CAPTURE", "Config", "")
    $gCaptureBoot = IniRead($sIni, "CAPTURE", "Boot", "1")
    $gCaptureCheck = IniRead($sIni, "CAPTURE", "Check", "1")
    $gCaptureName = IniRead($sIni, "CAPTURE", "Name", "My Build Name")
    $gCaptureDescription = IniRead($sIni, "CAPTURE", "Description", _Now())
    $gCaptureDiag = IniRead($sIni, "CAPTURE", "Diag", "0")
;
    $gApplySource = IniRead($sIni, "APPLY", "Source", "")
    $gApplyDestination = IniRead($sIni, "APPLY", "Destination", "MyWim.wim")
    $gApplyVerify = IniRead($sIni, "APPLY", "Verify", "0")
    $gApplyName = IniRead($sIni, "APPLY", "Name", "1")
    $gApplyDiag = IniRead($sIni, "APPLY", "Diag", "0")

    $gMapLetter = IniRead($sIni, "MAP", "Letter", "M:")
    $gMapShare = IniRead($sIni, "MAP", "Share", "\\Server\Share")
    $gMapUser = IniRead($sIni, "MAP", "User", "User")

EndFunc

Func SettingsToGUI()

   ; CAPTURE
    GUICtrlSetData($hCaptureSourceEdit, $gCaptureSource)
    GUICtrlSetData($hCaptureDestEdit, $gCaptureDestination)
    GUICtrlSetData($hCaptureCompression, $gCaptureCompression)
    GUICtrlSetData($hCaptureFlagsEdit, $gCaptureFlags)
    GUICtrlSetData($hCaptureConfigEdit, $gCaptureConfig)
    If $gCaptureBoot = 1 Then
        GUICtrlSetState($hCaptureBootCheck, $GUI_CHECKED)
    Else
        GUICtrlSetState($hCaptureBootCheck, $GUI_UNCHECKED)
    EndIf
    If $gCaptureCheck = 1 Then
        GUICtrlSetState($hCaptureCheckCheck, $GUI_CHECKED)
    Else
        GUICtrlSetState($hCaptureCheckCheck, $GUI_UNCHECKED)
    EndIf
    If $gCaptureDiag = 1 Then
        GUICtrlSetState($hCaptureDiagCheck, $GUI_CHECKED)
    Else
        GUICtrlSetState($hCaptureDiagCheck, $GUI_UNCHECKED)
    EndIf
    GUICtrlSetData($hCaptureNameEdit, $gCaptureName)
    GUICtrlSetData($hCaptureDescEdit, $gCaptureDescription)
   
   ; APPLY
    GUICtrlSetData($hApplySourceEdit, $gApplySource)
    GUICtrlSetData($hApplyDestEdit, $gApplyDestination)
    If $gApplyVerify = 1 Then
        GUICtrlSetState($hApplyVerifyCheck, $GUI_CHECKED)
    Else
        GUICtrlSetState($hApplyVerifyCheck, $GUI_UNCHECKED)
    EndIf
    If $gApplyDiag = 1 Then
        GUICtrlSetState($hApplyDiagCheck, $GUI_CHECKED)
    Else
        GUICtrlSetState($hApplyDiagCheck, $GUI_UNCHECKED)
    EndIf
    GUICtrlSetData($hApplyName, $gApplyName)

   ; MAP
    GUICtrlSetData($hMapLetter, $gMapLetter)
    GUICtrlSetData($hMapShareEdit, $gMapShare)
    GUICtrlSetData($hMapUserEdit, $gMapUser)
    GUICtrlSetData($hMapPasswordEdit, $gMapPassword)

EndFunc

Func ShowProgress($sCmd, $ImageType)
;Include rtconsole.exe for progress bar.
;
FileInstall("rtconsole.exe", @ScriptDir & "\rtconsole.exe")

;Msgbox(0,"RUN",'"' & @ScriptDir & '\rtconsole.exe" ' & $sCmd)
$foo = Run('"' & @ScriptDir & '\rtconsole.exe" ' & $sCmd,'','',2+4)
$line1 = '0'
ProgressOn('Imagex', 'ImageX', $line1)

While 1
    $line = StdoutRead($foo)
    if StringInStr($line, 'ImageX Tool for Windows') <> 0 then $line = 0
    if StringInStr($line, 'Progress: 100%') <> 0  then ExitLoop
    if StringInStr($line, 'Error') <> 0  then ExitLoop
    $line = StringStripWS($line, 7)
    if StringInStr($line, ',') <> 0 Then
;   $line2 = StringSplit($line, ',')
;   $line3 = StringRight($line2[2], StringLen($line2[2])-1)
    EndIf
    $line3 = StringSplit($line, @CRLF)
    $line1 = StringSplit($line, '%')
    $line = StringRight($line1[1], 2)
    If @error Then ExitLoop
    If $line <> "" Then
        ProgressSet($line, $line3[1], $ImageType)
    EndIf
Wend

ProgressOff()
FileDelete(@ScriptDir & "\rtconsole.exe")
EndFunc