dieses Script legt ein bootfähiges ISO an und brennt es anschliessend.
Weiter verfügt es über eine integrierte Hilfe.
Nach dem ersten Start trägt es sich ins Kontextmenü von Ordner und Iso-Dateien ein
Spoiler anzeigen
Code
Opt("TrayIconDebug", 1)
FileInstall("cdrdao.exe", @ScriptDir & "\cdrdao.exe", 1)
FileInstall("cygwin1.dll", @ScriptDir & "\cygwin1.dll", 1)
FileInstall("cdrecord.exe", @ScriptDir & "\cdrecord.exe", 1)
FileInstall("boot.bin", @ScriptDir & "\boot.bin", 1)
FileInstall("mkisofs.exe", @ScriptDir & "\mkisofs.exe")
#include<guiconstants.au3>
;-----------------------------------Spezielle Constants---------------------------------
; scroll constants
Global Const $SB_LINEDOWN = 1
Global Const $SB_LINEUP = 0
Global Const $SB_PAGEDOWN = 3
Global Const $SB_PAGEUP = 2
Global Const $SB_SCROLLCARET = 4
Global Const $EM_SCROLLCARET = 0x00B7
Global Const $EM_SCROLL = 0xB5
;-----------------------------------Spezielle Constants---------------------------------Ende---------------------
If RegRead("HKLM\SOFTWARE\Classes\.iso", "") > 1 Then
$file = RegRead("HKLM\SOFTWARE\Classes\.iso", "")
RegWrite("HKLM\SOFTWARE\Classes\" & $file & "\shell\BOOTISO Brennen\Command", "", "REG_SZ", @ScriptDir & '\cdimage-iso-brennen.exe "%1"')
Else
RegRead("HKLM\SOFTWARE\Classes\.iso", "")
RegWrite("HKLM\SOFTWARE\Classes\.iso", "", "REG_SZ", "isofile")
RegWrite("HKLM\SOFTWARE\Classes\isofile\shell\BOOTISO Brennen\Command", "", "REG_SZ", @ScriptDir & '\cdimage-iso-brennen.exe "%1"')
EndIf
RegWrite("HKLM\SOFTWARE\Classes\Directory\shell\BOOTISO Erstellen und Brennen\Command", "", "REG_SZ", @ScriptDir & '\cdimage-iso-brennen.exe "%1"')
GUICreate("BootISOGui 2.9", 450, 455, -1, -1, $WS_CAPTION + $WS_SYSMENU + $WS_MINIMIZEBOX + $WS_THICKFRAME)
Dim $ordner, $bootbin2, $iso, $brennverlauf
;$parameter ='-input-charset cp1252 -output-charset cp850 -b boootsector.bin -hide boootsector.bin -no-emul-boot -boot-load-size 4 -hide boot.catalog -o'
$parameter = '-volid "nLite-XPCD" -allow-multidot -relaxed-filenames -allow-leading-dots -N -l -d -D -joliet-long -duplicates-once -no-emul-boot -b boootsector.bin -hide boootsector.bin -hide boot.catalog -gui -o'
;Run('cmd.exe /C ' & @ScriptDir & '\mkisofs.exe -o "' & GUICtrlRead($isoauswahl) & '" ' & $parameter & ' "' & GUICtrlRead($xpcdordner) & '"', "", @SW_HIDE)
GUISetFont(9, 400, 1, "Courier New Bold")
;--------------------------Menü------------------------
$datei = GUICtrlCreateMenu("Datei")
$profil_save = GUICtrlCreateMenuitem("Einstellung speichern", $datei)
$profil_open = GUICtrlCreateMenuitem("Einstellung laden", $datei)
$ende = GUICtrlCreateMenuitem("Beenden", $datei)
$hilfe = GUICtrlCreateMenu("Hilfe")
$h_ordner = GUICtrlCreateMenuitem("XPCD-Ordner", $hilfe)
$h_bootbin = GUICtrlCreateMenuitem("Bootdatei", $hilfe)
$h_iso = GUICtrlCreateMenuitem("ISO-Datei", $hilfe)
$h_laufwerk = GUICtrlCreateMenuitem("Scan", $hilfe)
$h_isoanlegen = GUICtrlCreateMenuitem("ISO Anlegen", $hilfe)
$h_brennen = GUICtrlCreateMenuitem("ISO Brennen", $hilfe)
$h_isobrennen = GUICtrlCreateMenuitem("ISO Anlegen und Brennen", $hilfe)
$h_ex_brennen = GUICtrlCreateMenuitem("Extern Brennen", $hilfe)
GUICtrlCreateLabel("Wähle den Ordner aus in dem sich die XPCD Dateien befinden", 10, 10, 380, 15)
$xpcdordner = GUICtrlCreateInput($ordner, 10, 30, 390, 20)
$xpcdordner_pfad = GUICtrlCreateButton("O", 410, 30, 20, 20)
;$h_ordner = GUICtrlCreateButton("?", 395, 30, 20, 20)
GUICtrlCreateLabel("Wähle die Bootdatei aus (boot.bin)", 10, 60, 380, 15)
$bootbin = GUICtrlCreateInput($bootbin2, 10, 80, 390, 20)
$bootbin_pfad = GUICtrlCreateButton("B.", 410, 80, 20, 20)
;$h_bootbin = GUICtrlCreateButton("?", 395, 80, 20, 20)
GUICtrlCreateLabel("Ziel für die ISO-Datei auswählen", 10, 110, 380, 15)
$isoauswahl = GUICtrlCreateInput($iso, 10, 130, 390, 20)
$isosave = GUICtrlCreateButton("ISO", 410, 130, 30, 20)
;$h_iso = GUICtrlCreateButton("?", 405, 130, 20, 20)
GUICtrlCreateLabel("Brenner eingeben, Format z.B. 2,3,0", 10, 160, 380, 15)
$brenner = GUICtrlCreateCombo("", 10, 180, 350, 20)
;$h_laufwerk = GUICtrlCreateButton("?", 425, 180, 20, 20)
$laufwerk = GUICtrlCreateButton("Scan", 370, 180, 50, 25)
GUICtrlSetFont($laufwerk, 9, 800, 1, "Courier New Bold")
$isoanlegen = GUICtrlCreateButton("ISO Anlegen", 10, 210, 110, 25)
;$h_isoanlegen = GUICtrlCreateButton("?", 130, 210, 20, 25)
$brennen = GUICtrlCreateButton("ISO Brennen", 160, 210, 120, 25)
;$h_brennen = GUICtrlCreateButton("?", 285, 210, 20, 25)
$isobrennen = GUICtrlCreateButton("ISO Anlegen und Brennen", 20, 240, 210, 25)
;$h_isobrennen = GUICtrlCreateButton("?", 240, 240, 20, 25)
$ex_brennen = GUICtrlCreateButton("Extern Brennen", 310, 210, 100, 25)
;$h_ex_brennen = GUICtrlCreateButton("?", 420, 210, 20, 25)
;$ende = GUICtrlCreateButton("Beenden", 270, 240, 120, 25)
$verlauf = GUICtrlCreateProgress(5, 270, 435, 20, $PBS_SMOOTH)
$log_info = GUICtrlCreateEdit("", 10, 293, 430, 140, $WS_VSCROLL+$WS_HSCROLL+$ES_MULTILINE)
GUICtrlSetColor($verlauf, 0x0088ff)
GUICtrlSetFont($verlauf, 9, 800, 1, "Verdana")
GUICtrlSetFont($isoanlegen, 9, 800, 1, "Verdana")
GUICtrlSetFont($brennen, 9, 800, 1, "Verdana")
GUICtrlSetFont($isobrennen, 9, 800, 1, "Verdana")
GUICtrlSetFont($ende, 9, 800, 1, "Verdana")
GUICtrlSetFont($log_info, 8, 800, 2, "Verdana")
GUICtrlSetState($brennen, $GUI_DISABLE)
GUICtrlSetState($isobrennen, $GUI_DISABLE)
GUICtrlSetState($isoanlegen, $GUI_DISABLE)
GUICtrlSetState($ex_brennen, $GUI_DISABLE)
GUICtrlSetState($profil_save, $GUI_DISABLE)
;-------------------------Kommandozeile--------------------------------
Dim $iso2
If $CmdLine[0] = 1 Then
If StringInStr($CmdLine[1], ".iso") > 1 Then
GUICtrlSetData($isoauswahl, $CmdLine[1])
GUICtrlSetState($brennen, $GUI_ENABLE)
ElseIf StringInStr($CmdLine[1], ".iso") < 1 Then
GUICtrlSetData($xpcdordner, $CmdLine[1])
GUICtrlSetData($isoauswahl, $CmdLine[1] & ".iso")
If FileExists($CmdLine[1] & "\bcdw\bcdwhide.bin") Then
GUICtrlSetData($bootbin, $CmdLine[1] & "\bcdw\bcdwhide.bin")
GUICtrlSetData($isoauswahl, $CmdLine[1] & ".iso")
GUICtrlSetState($isoanlegen, $GUI_ENABLE)
GUICtrlSetState($isobrennen, $GUI_ENABLE)
GUICtrlSetState($profil_open, $GUI_ENABLE)
GUICtrlSetState($profil_save, $GUI_ENABLE)
Run('Cmd.exe /C /B /s ' & $CmdLine[1] & '>%temp%\filelist.txt', "", @SW_HIDE)
ElseIf FileExists($CmdLine[1] & "\boot.bin") Then
GUICtrlSetData($bootbin, $CmdLine[1] & "\boot.bin")
GUICtrlSetData($isoauswahl, $CmdLine[1] & ".iso")
GUICtrlSetState($isoanlegen, $GUI_ENABLE)
GUICtrlSetState($isobrennen, $GUI_ENABLE)
GUICtrlSetState($profil_open, $GUI_ENABLE)
GUICtrlSetState($profil_save, $GUI_ENABLE)
Else
GUICtrlSetData($bootbin, @ScriptDir & "\boot.bin")
GUICtrlSetData($isoauswahl, $CmdLine[1] & ".iso")
GUICtrlSetState($isoanlegen, $GUI_ENABLE)
GUICtrlSetState($isobrennen, $GUI_ENABLE)
GUICtrlSetState($profil_open, $GUI_ENABLE)
GUICtrlSetState($profil_save, $GUI_ENABLE)
EndIf
If FileExists(GUICtrlRead($xpcdordner) & ".iso") Then
GUICtrlSetState($brennen, $GUI_ENABLE)
GUICtrlSetState($ex_brennen, $GUI_ENABLE)
GUICtrlSetState($profil_save, $GUI_ENABLE)
EndIf
EndIf
EndIf
;-------------------------Kommandozeile Ende--------------------------------
GUISetState()
_BrennerLog()
_BrennerLog()
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $xpcdordner_pfad
GUICtrlSetData($xpcdordner, FileSelectFolder("XPCD Ordner auswählen", "", 7, ""))
If FileExists(GUICtrlRead($xpcdordner) & "\bcdw\bcdwhide.bin") Then
GUICtrlSetData($bootbin, GUICtrlRead($xpcdordner) & "\bcdw\bcdwhide.bin")
GUICtrlSetData($isoauswahl, GUICtrlRead($xpcdordner) & ".iso")
GUICtrlSetState($isoanlegen, $GUI_ENABLE)
GUICtrlSetState($isobrennen, $GUI_ENABLE)
GUICtrlSetState($profil_save, $GUI_ENABLE)
ElseIf FileExists(GUICtrlRead($xpcdordner) & "\boot.bin") Then
GUICtrlSetData($bootbin, GUICtrlRead($xpcdordner) & "\boot.bin")
Else
GUICtrlSetData($bootbin, @ScriptDir & "\boot.bin")
EndIf
GUICtrlSetData($isoauswahl, GUICtrlRead($xpcdordner) & ".iso")
If FileExists(GUICtrlRead($bootbin)) Then
GUICtrlSetState($isobrennen, $GUI_ENABLE)
GUICtrlSetState($isoanlegen, $GUI_ENABLE)
GUICtrlSetState($profil_save, $GUI_ENABLE)
EndIf
If FileExists(GUICtrlRead($isoauswahl)) Then
GUICtrlSetState($brennen, $GUI_ENABLE)
GUICtrlSetState($ex_brennen, $GUI_ENABLE)
GUICtrlSetState($profil_save, $GUI_ENABLE)
EndIf
Case $msg = $bootbin_pfad
$boot = FileOpenDialog("Bootdatei auswählen (boot.bin)", @WorkingDir, "Bootdatei (*.bin;*.ima;*.img)", 1)
If FileExists(GUICtrlRead($bootbin)) Then
GUICtrlSetState($isobrennen, $GUI_ENABLE)
GUICtrlSetState($isoanlegen, $GUI_ENABLE)
EndIf
If FileExists(GUICtrlRead($isoauswahl)) Then
GUICtrlSetState($brennen, $GUI_ENABLE)
GUICtrlSetState($profil_save, $GUI_ENABLE)
EndIf
If $boot <> "" Then
GUICtrlSetData($bootbin, $boot)
EndIf
Case $msg = $isosave
$iso = FileSaveDialog("Ordner auswählen in dem die ISO-datei gespeichert werden soll", "", "Isodateien (*.iso)", 2, "nLiteCD.iso")
_BrennerLog()
GUICtrlSetData($isoauswahl, $iso)
If FileExists(GUICtrlRead($bootbin)) Then
GUICtrlSetState($isobrennen, $GUI_ENABLE)
GUICtrlSetState($isoanlegen, $GUI_ENABLE)
GUICtrlSetState($profil_save, $GUI_ENABLE)
EndIf
If FileExists(GUICtrlRead($isoauswahl)) Then
GUICtrlSetState($brennen, $GUI_ENABLE)
GUICtrlSetState($ex_brennen, $GUI_ENABLE)
GUICtrlSetState($profil_save, $GUI_ENABLE)
EndIf
;-----------------hilfe---------------------
Case $msg = $h_ordner
GUICtrlSetData($log_info, "Klicke hier auf 'O.' und wähle den Ordner aus mit den XPCD")
GUICtrlSetData($log_info, @CRLF & "Dateien oder gibt ihn direkt ein, wenn in diesem Ordner", 1)
GUICtrlSetData($log_info, @CRLF & "eine boot.bin Datei existiert, so wird der Pfad zurm", 1)
GUICtrlSetData($log_info, @CRLF & " Bootimage automatisch eingestellt und die Auswahl zum", 1)
GUICtrlSetData($log_info, @CRLF & " Bootimage übersprungen", 1)
Case $msg = $h_bootbin
GUICtrlSetData($log_info, "Klicke hier auf 'B.' und wähle das Bootimage aus")
GUICtrlSetData($log_info, @CRLF & " (meistens boot.bin), das Bootimage muss nicht als Datei", 1)
GUICtrlSetData($log_info, @CRLF & " mit auf die CD/DVD8", 1)
Case $msg = $h_iso
GUICtrlSetData($log_info, "Klicke hier auf 'ISO', wähle den Speicherort aus und")
GUICtrlSetData($log_info, @CRLF & " gib den Namen für das ISO ein mit der Endung (.iso)", 1)
Case $msg = $h_laufwerk
GUICtrlSetData($log_info, "Wähle hier den Brenner aus, durch ")
GUICtrlSetData($log_info, @CRLF & "ein Klick auf die Pfeile. Falls kein Brenner angezeigt wird", 1)
GUICtrlSetData($log_info, @CRLF & " so klicke auf 'Scan' um ihn zu ermitteln", 1)
Case $msg = $h_isoanlegen
GUICtrlSetData($log_info, "Hier durch wird das Anlegen des BootISO's gestartet")
GUICtrlSetData($log_info, @CRLF & " , wenn alles eingestellt ist ohne anschliessendes Brennen", 1)
GUICtrlSetData($log_info, @CRLF & ", das kannste du ansschliessend durch ein Klick auf", 1)
GUICtrlSetData($log_info, @CRLF & ' "Brennen" nachholen', 1)
Case $msg = $h_brennen
GUICtrlSetData($log_info, "Hier durch wird das BootISO's gebrannt, der Button ist erst")
GUICtrlSetData($log_info, @CRLF & " aktiv, nachdem das BootIso angelegt wurde oder, wenn es", 1)
GUICtrlSetData($log_info, @CRLF & " schon vorhanden ist", 1)
Case $msg = $h_isobrennen
GUICtrlSetData($log_info, "Hier durch wird das Anlegen des BootISO's gestartet")
GUICtrlSetData($log_info, @CRLF & " , wenn alles eingestellt ist und anschliessend gebrannt", 1)
Case $msg = $h_ex_brennen
GUICtrlSetData($log_info, "Hiermit wird dein extern registriertes Brennprogramm gestartet")
GUICtrlSetData($log_info, @CRLF & ", statt der internen Brennroutine", 1)
;------------------laufwerk ermitteln---------------------
Case $msg = $laufwerk
_BrennerLog()
;-----------------------------------Einstellungen speichern laden ----------------------------
Case $msg = $profil_save
DirCreate(@ScriptDir & '\Presets')
$presets_file = FileSaveDialog("Einstellungen Speichern", @ScriptDir & '\Presets', "Einstellungen (*.ini)", 16, "bootiso.ini")
FileDelete($presets_file)
FileWriteLine($presets_file, GUICtrlRead($xpcdordner) )
FileWriteLine($presets_file, GUICtrlRead($isoauswahl))
FileWriteLine($presets_file, GUICtrlRead($bootbin))
Case $msg = $profil_open
$presetsfile_open = FileOpenDialog("Einstellungen laden", @ScriptDir & '\Presets', "Einstellungen (*.ini)", 16, "bootiso.ini")
GUICtrlSetData($xpcdordner, "")
GUICtrlSetData($isoauswahl, "")
GUICtrlSetData($bootbin, "")
GUICtrlSetData($xpcdordner, FileReadLine($presetsfile_open, 1))
GUICtrlSetData($isoauswahl, FileReadLine($presetsfile_open, 2))
GUICtrlSetData($bootbin, FileReadLine($presetsfile_open, 3))
GUICtrlSetState($profil_save, $GUI_ENABLE)
;-----------------------------ISO_Anlegen---------------------------------
Case $msg = $isoanlegen
If FileExists(GUICtrlRead($xpcdordner)) and FileExists(GUICtrlRead($bootbin)) and GUICtrlRead($isoauswahl) Then
Gui_Disable()
FileCopy(GUICtrlRead($bootbin), GUICtrlRead($xpcdordner) & '\boootsector.bin', 1)
FileDelete(GUICtrlRead($isoauswahl))
Sleep(500)
;RunWait('Cmd.exe /C dir /B /s "' & GUICtrlRead($xpcdordner) & '">%temp%\filelist_1.txt', "", @SW_HIDE)
;$filelist_1 = FileRead(@TempDir & '\filelist_1.txt', 37000000)
;$filelist_2 = StringReplace($filelist_1, GUICtrlRead($xpcdordner), "")
;FileWrite(@TempDir & '\filelist_2.txt', $filelist_2)
;Sleep(4000000)
Run('cmd.exe /C ' & @ScriptDir & '\iso-mkisofs.exe ' & $parameter & ' "' & GUICtrlRead($isoauswahl) & '" "' & GUICtrlRead($xpcdordner) & '"', "", @SW_HIDE)
Sleep(500)
_iso_log()
ProcessWaitClose("cdimage.exe")
GUICtrlSetData($log_info, @CRLF & "BootISO ist angelegt", 1)
If FileExists(GUICtrlRead($isoauswahl)) Then
Gui_Enable()
_GUICtrlEditScroll($log_info, $SB_SCROLLCARET)
GUICtrlSetData($log_info, @CRLF & "Das Bootiso wurde angelegt und kann gebrannt werden", 1)
EndIf
Else
MsgBox(64, "Angaben fehlen", "Es sind nicht alle Angaben eingegeben" & @CRLF & "um das BootISO anzulegen")
EndIf
;-------------------------------brennen--------------------------------------
Case $msg = $brennen
If FileExists(@ScriptDir & "\cdrecord.exe") and FileExists(GUICtrlRead($isoauswahl)) and GUICtrlRead($brenner) Then
Gui_Disable()
GUICtrlSetData($log_info, "Brennvorgang wird gestartet")
$brenner_scan = StringLeft(GUICtrlRead($brenner), 5)
RunWait("CMD.exe /C " & @ScriptDir & "\cdrdao.exe blank --device SPTI:" & $brenner_scan & " --driver generic-mmc:0x10 --reload --blank-mode minimal", "", @SW_HIDE)
Sleep(3000)
Run('Cmd.exe /C ' & @ScriptDir & '\cdrecord.exe -dao dev=SPTI:' & $brenner_scan & ' driveropts=burnfree -v gracetime=0 "' & GUICtrlRead($isoauswahl) & '">%temp%\brennverlauf.txt', "", @SW_HIDE)
_BrennerVerlauf()
Sleep(2000)
ProcessWaitClose("cdrecord.exe")
Sleep(1000)
MsgBox(64, "Brennstatus", "Brennvorgang abgeschlossen, " & @CRLF & "CD/DVD kann entnohmen werden", 25)
If FileExists(GUICtrlRead($xpcdordner)) and FileExists(GUICtrlRead($bootbin)) and FileExists(GUICtrlRead($isoauswahl)) Then
Gui_Enable()
Else
Gui_Enable_Iso ()
EndIf
Else
GUICtrlSetState($brennen, $GUI_DISABLE)
MsgBox(64, "Angaben fehlen", "Es sind nicht alle notwendingen Parameter angegeben" & @CRLF & "um das BootISO zu brennen, überprufe alles nochmal." & @CRLF & "Wähle den richtigen Brenner aus und gibt das fertige Bootiso an")
EndIf
;-----------------------------extern brennen-------------------------------------------------
Case $msg = $ex_brennen
If FileExists(GUICtrlRead($isoauswahl)) Then
_RunDOS(GUICtrlRead($isoauswahl))
GUICtrlSetData($log_info, @CRLF & "Externes Brennprogramm gestartet", 1)
Else
MsgBox(64, "BootIso", "BootISO existiert nocht nicht, lege zuerst einen an")
EndIF
;--------------------------------ISO_Anlegen_Brennen------------------------------------
Case $msg = $isobrennen
If FileExists(GUICtrlRead($xpcdordner)) and FileExists(GUICtrlRead($bootbin)) and GUICtrlRead($isoauswahl) and GUICtrlRead($brenner) Then
Gui_Disable()
FileCopy(GUICtrlRead($bootbin), GUICtrlRead($xpcdordner) & '\boootsector.bin', 1)
FileDelete(GUICtrlRead($isoauswahl))
Sleep(500)
Run('cmd.exe /C ' & @ScriptDir & '\iso-mkisofs.exe ' & $parameter & ' "' & GUICtrlRead($isoauswahl) & '" "' & GUICtrlRead($xpcdordner) & '"', "", @SW_HIDE)
_iso_log()
Sleep(1000)
ProcessWaitClose("cdimage.exe")
GUICtrlSetData($log_info, @CRLF & "BootISO ist angelegt, Brennvorgang wird gestartet" & @CRLF, 1)
If FileExists(@ScriptDir & "\cdrecord.exe") Then
$brenner_scan = StringLeft(GUICtrlRead($brenner), 5)
RunWait("CMD.exe /C " & @ScriptDir & "\cdrdao.exe blank --device SPTI:" & $brenner_scan & " --driver generic-mmc:0x10 --reload --blank-mode minimal", "", @SW_HIDE)
Run('Cmd.exe /C ' & @ScriptDir & '\cdrecord.exe -dao dev=SPTI:' & $brenner_scan & ' driveropts=burnfree -v gracetime=0 "' & GUICtrlRead($isoauswahl) & '">%temp%\brennverlauf.txt', "", @SW_HIDE)
Sleep(2000)
_BrennerVerlauf()
Else
_RunDOS(Chr(34) & GUICtrlRead($isoauswahl) & Chr(34))
EndIf
ProcessWaitClose("cdrecord.exe")
Sleep(1000)
MsgBox(64, "Brennstatus", "ISO angelegt und Brennvorgang abgeschlossen," & @CRLF & " CD/DVD kann entnohmen werden", 25)
Gui_Enable()
Else
MsgBox(64, "Angaben fehlen", "Es sind nicht alle Angaben eingegeben" & @CRLF & "um das BootISO anzulegen und zu brennen")
EndIf
Case $msg = $ende
Exit
ExitLoop
EndSelect
WEnd
Exit
;---------------------------Funktionen-------
Func _RunDOS($sCommand)
Return RunWait(@ComSpec & " /C " & $sCommand, "", @SW_HIDE)
EndFunc ;==>_RunDOS
Func _iso_log()
GUICtrlSetData($verlauf, "1")
Sleep(2000)
GUICtrlSetData($log_info, @CRLF & "Dateien werden gescannt, bitte Warten" & @CRLF, 1)
$size = DirGetSize(GUICtrlRead($xpcdordner))
$size_1 = StringTrimRight($size, 3)
$size_2 = StringTrimRight($size, 6)
$size_3 = $size_2 / 1.008
$size_4 = StringLeft($size_3, 4)
Sleep(1000)
GUICtrlSetData($log_info, @CRLF & "Geschätzte Iso-Grösse: " & $size_4 & "MB" & @CRLF, 1)
Sleep(1000)
GUICtrlSetData($log_info, @CRLF & "BootISO wird angelegt, bitte Warten" & @CRLF, 1)
Do
Sleep(1000)
$size_file = FileGetSize(GUICtrlRead($isoauswahl))
$size_file_3 = StringTrimRight($size_file, 6)
$size_file_2 = $size_file / 10.5
$s_1 = $size_file_2 / $size_1
If $size_file_3 < 1 Then
$x = 0
$log = " ,Dateien werden noch gescannt"
Else
$x = ''
$log = ", vom vorläufigen ISO"
EndIF
GUICtrlSetData($log_info, @CRLF & " " & $size_file_3 & "" & $x & " MB fertig von ca. " & $size_4 & " MB " & $log & "" & @CRLF, 1)
_GUICtrlEditScroll($log_info, $SB_SCROLLCARET)
GUICtrlSetData($verlauf, $s_1)
Until ProcessExists("iso-mkisofs.exe") = 0
Sleep(1000)
$size_file = FileGetSize(GUICtrlRead($isoauswahl))
$size_file_3 = StringTrimRight($size_file, 6)
If $size_file_3 < 1 Then
$x = 0
$log = " ,Dateien werden noch gescannt"
Else
$x = ''
$log = ", vom vorläufigen ISO"
EndIF
GUICtrlSetData($log_info, @CRLF & " " & $size_file_3 & "" & $x & " MB fertig von " & $size_file_3 & " MB " & $log & "" & @CRLF, 1)
_GUICtrlEditScroll($log_info, $SB_SCROLLCARET)
GUICtrlSetData($verlauf, "100")
Sleep(3000)
FileDelete(GUICtrlRead($xpcdordner) & '\boootsector.bin')
_GUICtrlEditScroll($log_info, $SB_SCROLLCARET)
EndFunc ;==>_iso_log
Func _BrennerLog()
$run = Run(@ComSpec & ' /C ' & @ScriptDir & '\cdrdao.exe scanbus', '', @SW_HIDE, 7)
Dim $outread
$stdoutread = StdoutRead ($run)
If Not @error = -1 Then $outread = $stdoutread
$stderrRead = StderrRead ($run)
If Not @error = -1 Then $outread = $stderrRead
FileWrite(@TempDir & "\loginfo.txt", $outread)
GUICtrlSetData($brenner, FileReadLine(@TempDir & "\loginfo.txt", 9))
GUICtrlSetData($brenner, FileReadLine(@TempDir & "\loginfo.txt", 10))
$brenner_scan = StringLeft(GUICtrlRead($brenner), 5)
$outread_rep = StringRegExpReplace($outread, @LF, @CRLF)
GUICtrlSetData($log_info, $outread_rep & "" & @CRLF, 1)
EndFunc ;==>_BrennerLog
Func _BrennerVerlauf()
GUICtrlSetColor($log_info, 0xff0000)
FileDelete(@TempDir & "\brennverlauf.txt")
FileDelete(@TempDir & "\brennerverlauf_status.txt")
GUICtrlSetData($log_info, @CRLF & "Brennvorgang startet gleich, bitte warten" & @CRLF, 1)
Sleep(10000)
GUICtrlSetData($log_info, @CRLF & "Brennenvorgang gestartet" & @CRLF, 1)
$size = FileGetSize(GUICtrlRead($isoauswahl))
$size_1 = StringTrimRight($size, 4)
_GUICtrlEditScroll($log_info, $SB_SCROLLCARET)
GUICtrlSetData($verlauf, "1")
Do
Sleep(750)
$brennerverlauf = FileRead(@TempDir & "\brennverlauf.txt", 37000000)
$brennerverlauf_1 = StringRegExpReplace($brennerverlauf, @CR, @CRLF)
$brennerverlauf_2 = StringRegExpReplace($brennerverlauf_1, @LF, @CRLF)
GUICtrlSetData($log_info, $brennerverlauf_2)
_GUICtrlEditScroll($log_info, $SB_SCROLLCARET)
$len_2 = StringLen(GUICtrlRead($log_info))
$len_3 = $len_2 * 149
$s_1 = $len_3 / $size_1
GUICtrlSetData($verlauf, $s_1)
Until ProcessExists("cdrecord.exe") = 0
Sleep(1000)
GUICtrlSetData($verlauf, "100")
$brennerverlauf = FileRead(@TempDir & "\brennverlauf.txt", 37000000)
$brennerverlauf_1 = StringRegExpReplace($brennerverlauf, @CR, @CRLF)
$brennerverlauf_2 = StringRegExpReplace($brennerverlauf_1, @LF, @CRLF)
GUICtrlSetData($log_info, $brennerverlauf_2 & " " & @CRLF & "BootISO fertig gebrannt CD/DVD kann entnohmen werden", 1)
_GUICtrlEditScroll($log_info, $SB_SCROLLCARET)
RunWait(@ScriptDir & "\cdrecord.exe dev=SPTI:" & $brenner_scan & " -eject", "", @SW_HIDE)
Sleep(2000)
;GUICtrlSetData($verlauf, "100")
RunWait(@ScriptDir & "\cdrecord.exe dev=SPTI:" & $brenner_scan & " -load", "", @SW_HIDE)
Sleep(1000)
EndFunc ;==>_BrennerVerlauf
Func Gui_Disable()
GUICtrlSetState($brennen, $GUI_DISABLE)
GUICtrlSetState($isoanlegen, $GUI_DISABLE)
GUICtrlSetState($xpcdordner_pfad, $GUI_DISABLE)
GUICtrlSetState($bootbin_pfad, $GUI_DISABLE)
GUICtrlSetState($isosave, $GUI_DISABLE)
GUICtrlSetState($isobrennen, $GUI_DISABLE)
GUICtrlSetState($ex_brennen, $GUI_DISABLE)
GUICtrlSetState($laufwerk, $GUI_DISABLE)
GUICtrlSetState($h_bootbin, $GUI_DISABLE)
GUICtrlSetState($h_brennen, $GUI_DISABLE)
GUICtrlSetState($h_ex_brennen, $GUI_DISABLE)
GUICtrlSetState($h_iso, $GUI_DISABLE)
GUICtrlSetState($h_isoanlegen, $GUI_DISABLE)
GUICtrlSetState($h_isobrennen, $GUI_DISABLE)
GUICtrlSetState($h_laufwerk, $GUI_DISABLE)
GUICtrlSetState($h_ordner, $GUI_DISABLE)
GUICtrlSetState($profil_open, $GUI_DISABLE)
GUICtrlSetState($profil_save, $GUI_DISABLE)
GUICtrlSetState($ende, $GUI_DISABLE)
GUICtrlSetData($verlauf, "1")
EndFunc
func Gui_Enable()
GUICtrlSetState($brennen, $GUI_ENABLE)
GUICtrlSetState($ende, $GUI_ENABLE)
GUICtrlSetState($isoanlegen, $GUI_ENABLE)
GUICtrlSetState($xpcdordner_pfad, $GUI_ENABLE)
GUICtrlSetState($bootbin_pfad, $GUI_ENABLE)
GUICtrlSetState($isosave, $GUI_ENABLE)
GUICtrlSetState($isobrennen, $GUI_ENABLE)
GUICtrlSetState($ex_brennen, $GUI_ENABLE)
GUICtrlSetState($laufwerk, $GUI_ENABLE)
GUICtrlSetState($ende, $GUI_ENABLE)
GUICtrlSetState($h_bootbin, $GUI_ENABLE)
GUICtrlSetState($h_brennen, $GUI_ENABLE)
GUICtrlSetState($h_ex_brennen, $GUI_ENABLE)
GUICtrlSetState($h_iso, $GUI_ENABLE)
GUICtrlSetState($h_isoanlegen, $GUI_ENABLE)
GUICtrlSetState($h_isobrennen, $GUI_ENABLE)
GUICtrlSetState($h_laufwerk, $GUI_ENABLE)
GUICtrlSetState($h_ordner, $GUI_ENABLE)
GUICtrlSetState($profil_open, $GUI_ENABLE)
GUICtrlSetState($profil_save, $GUI_ENABLE)
GUICtrlSetState($ende, $GUI_ENABLE)
GUICtrlSetColor($log_info, 0x00000080)
EndFunc
Func Gui_Enable_Iso()
GUICtrlSetState($brennen, $GUI_ENABLE)
GUICtrlSetState($ende, $GUI_ENABLE)
GUICtrlSetState($xpcdordner_pfad, $GUI_ENABLE)
GUICtrlSetState($bootbin_pfad, $GUI_ENABLE)
GUICtrlSetState($isosave, $GUI_ENABLE)
GUICtrlSetState($ex_brennen, $GUI_ENABLE)
GUICtrlSetState($laufwerk, $GUI_ENABLE)
GUICtrlSetState($ende, $GUI_ENABLE)
GUICtrlSetState($h_bootbin, $GUI_ENABLE)
GUICtrlSetState($h_brennen, $GUI_ENABLE)
GUICtrlSetState($h_ex_brennen, $GUI_ENABLE)
GUICtrlSetState($h_iso, $GUI_ENABLE)
GUICtrlSetState($h_laufwerk, $GUI_ENABLE)
GUICtrlSetState($h_ordner, $GUI_ENABLE)
GUICtrlSetState($profil_open, $GUI_ENABLE)
GUICtrlSetState($profil_save, $GUI_ENABLE)
GUICtrlSetState($ende, $GUI_ENABLE)
GUICtrlSetColor($log_info, 0x00000080)
EndFunc
Func _GUICtrlEditScroll($h_edit, $i_direct)
If IsHWnd($h_edit) Then
Local $a_ret
If $i_direct == $SB_SCROLLCARET Then
$a_ret = DllCall("user32.dll", "int", "SendMessage", "hwnd", $h_edit, "int", $EM_SCROLLCARET, "int", 0, "int", 0)
Else
$a_ret = DllCall("user32.dll", "int", "SendMessage", "hwnd", $h_edit, "int", $EM_SCROLL, "int", $i_direct, "int", 0)
EndIf
Return $a_ret[0]
Else
If $i_direct == $SB_SCROLLCARET Then
Return GUICtrlSendMsg($h_edit, $EM_SCROLLCARET, 0, 0)
Else
Return GUICtrlSendMsg($h_edit, $EM_SCROLL, $i_direct, 0)
EndIf
EndIf
EndFunc ;==>_GUICtrlEditScroll
Alles anzeigen
[Blockierte Grafik: http://img119.imageshack.us/img119/6843/bootisogui0ct.png]
Die benötigten Dateien findet ihr hier
http://downloads.lautlos.cc/johnystools/brennen/cdimage.7z
Das kompilierte Script mit allen Files, hier
http://downloads.lautlos.cc/johnystools/br…iso-brennen.exe
Falls jemand dieses Script schon kennt, ja ich habe es woanders in eine anderen Forum schon gepostet