1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. sc4ry

Beiträge von sc4ry

  • NeroCMD AutBurner V.2 Final

    • sc4ry
    • 2. Mai 2007 um 20:21

    V.2 ist nun fertig =)

    !!!NEU!!!

    -download der nerocmd+dlls
    -gui zum einstellen von
    brenner (cdrom-lws vorselektiert)
    cd-speed
    cd-typ (daten-cd, s/vcd, image, ordner)
    ordner mit zu brennenden dateien
    endung der dateien zum brennen
    löschen der files nach dem brennen
    -kleine helpbox
    -einzug der cd nach bestätigen der msgbox mit dem namen des gebrannten files
    -txt mit den namen der files, die gebrannt wurden
    -import betasettings

    der code:

    Spoiler anzeigen
    [autoit]


    ;
    ;NeroCMD AutoBurner V.2
    ;
    ;©sc4ry
    ;

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

    ;general settings
    #include<guiconstants.au3>
    #include<ie.au3>
    #include<array.au3>
    $ini = "NeroCMD AutoBurner V2.ini"

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

    ;import beta-settings if exist
    if FileExists(@ScriptDir & "\" & "NeroCMD AutoBurner V2 (beta).ini") then
    FileChangeDir(@scriptdir)
    RunWait(@comspec & ' /c ren "NeroCMD AutoBurner V2 (beta).ini" "NeroCMD AutoBurner V2.ini"', "", @SW_HIDE)
    Else
    EndIf

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

    ;suche nach bestehender ini, wenn nicht existiert ...
    if not FileExists(@scriptdir & "\" & $ini) then

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

    ;welcome-box
    $OpenGui = GUICreate("NeroCMD AutoBurner V2 by sc4ry", 270, 80)
    GUICtrlCreateLabel('This little Programm will burn "1-File-on-1-CD"' & @CRLF & 'you only need the NeroCMD in %programfiles%', 10, 10, 270, 30)
    $Ok = GUICtrlCreateButton("&OK", 10, 50, 50)
    $help = GUICtrlCreateButton("&Help", 210, 50, 50)
    GUISetState(@SW_SHOW)

    While 1
    $msg = GUIGetMsg()
    Select
    case $msg = $gui_event_close
    Exit
    case $msg = $help
    MsgBox(64, "Help", "NeroCMD AutoBurner V2 " & @CRLF & @CRLF & "This little Program will help you, to burn different files on CD." & @CRLF & "Till Now it only can burn 1-File or 1-Folder on a CD." & @CRLF & "The Different Formats are:" & @CRLF & @CRLF & "Data-CD:" & @CRLF & "-avi" & @CRLF & "-divx" & @CRLF & "-xvid" & @CRLF & "-*.* (means Folder or anything else, but be careful)" & @CRLF & @CRLF & "SVCD or VCD:" & @CRLF & "-mpg" & @CRLF & "-mpeg" & @CRLF & @CRLF & "Image:" & @CRLF & "-iso" & @CRLF & "-nrg" & @CRLF & "-img" & @CRLF & "-bin" & @CRLF & "-cue" & @CRLF & @CRLF & "... and now have fun" & @CRLF & @CRLF & @CRLF & @CRLF & "greets 2:" & @CRLF & "sh0rty, PsyCore, ttt, beach & Autoit.de")
    case $msg = $ok
    GUIDelete($OpenGui)
    ExitLoop
    EndSelect
    WEnd

    ;suche nach NeroCMD.exe
    Dim $file = "nerocmd.exe"
    Dim $SearchFolder = @ProgramFilesDir
    Dim $PathFound
    $FSO = ObjCreate("Scripting.FileSystemObject")
    Showsubfolders( $FSO.GetFolder($SearchFolder) )
    ;fehlermeldung wenn nicht gefunden
    if not FileExists($pathfound) Then
    ;erstelle Fehler-GUI
    $font = "Times New Roman Fett"
    $URL = "http://simpleupload.net/download/83523/NeroCMD.rar.html"
    GUICreate("Error", 470, 80)
    GUICtrlCreateLabel("NeroCMD was not found on your PC, please install NeroCMD first", 10, 10, 480, 30)
    GUICtrlSetFont(-1, "", "", "", $font)
    GUICtrlSetColor(-1, 0xff0000)
    $download = GUICtrlCreateButton("Download NeroCMD-Package", 150, 50, 180)
    ;zeige gui
    guiSetState(@SW_SHOW)
    ;buttons
    While 1
    $msg = GUIGetMsg()
    Select
    case $msg = $gui_event_close
    Exit
    case $msg = $download
    $oIE = _IECreate ($URL,0,1,1,0)
    $oHWND = _IEPropertyGet($oIE, "hwnd")
    WinSetState ($oHWND, "", @SW_MAXIMIZE )
    Exit
    EndSelect
    WEnd
    Else
    EndIf

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

    ;erstelle settings-GUI
    $Settings = GUICreate("Settings", 270, 200, -1, -1, -1, $WS_EX_ACCEPTFILES)
    ;official buttons
    $ok = GUICtrlCreateButton("&OK", 10, 170, 70)
    $cancel = GUICtrlCreateButton("&Cancel", 190, 170, 70)

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

    ;1st Tab
    GUICtrlCreateTab(0, 0, 270, 165)
    $GUISettings = GUICtrlCreateTabItem("Burnsettings")
    ;Recorder
    GUICtrlCreateLabel("Choose your CD-Writer", 10, 30)
    $Combo1 = GUICtrlCreateCombo("", 10, 50)
    ;suche nach brenner/cdrom
    $var = DriveGetDrive("cdrom")
    if @error Then
    MsgBox(16, "Error", "No CD-Writer found")
    FileDelete(@scriptdir & "\" & $ini)
    exit
    Else
    For $i = 1 to $var[0]
    GUICtrlSetData($Combo1,$var[$i],$var[1])
    Next
    EndIf

    ;speed
    GUICtrlCreateLabel("Choose CD-Writer Speed", 10, 90)
    $Combo2 = GUICtrlCreateCombo("", 10, 110)
    GUICtrlSetData(-1, "1|2|4|8|12|16|20|24|32|40|48|52", "48")

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

    ;2nd Tab
    GUICtrlCreateTab(-1, -1, 270, 165)
    GUICtrlCreateTabItem("CD-Settings")
    ;CDType
    GUICtrlCreateLabel("Choose CD Type", 10, 30)
    $Combo3 = GUICtrlCreateCombo("", 10, 50)
    GUICtrlSetData(-1, "Data-CD|SVCD|VCD|Image")

    ;3rd Tab
    GUICtrlCreateTab(-1, -1, 270, 165)
    GUICtrlCreateTabItem("Filesettings")
    ;BurnDir
    GUICtrlCreateLabel("Choose Burning-Dir", 10, 30)
    $BurnDir = "C:\Dokumente und Einstellungen\Administrator\Eigene Dateien"
    $Input1 = GUICtrlCreateInput($BurnDir, 10, 50, 180)
    GUICtrlSetState(-1, $GUI_ACCEPTFILES)
    $browse = GUICtrlCreateButton("&Browse", 195, 48, 70)
    ;FileType
    GUICtrlCreateLabel("Choose Extension", 10, 90)
    $Combo4 = GUICtrlCreateCombo("", 10, 110)
    $FileType = ""
    GUICtrlSetData($Combo4, "*.avi|*.divx|*.vxid|*.mpg|*.mpeg|*.iso|*.nrg|*.img|*.bin|*.cue")
    ;delete File
    $checkbox1 = GUICtrlCreateCheckbox("Delete Files?", 160, 110)

    ;abbruch bei error + IniDelete
    if @error then FileDelete(@scriptdir & "\" & $ini)
    ;"Show"-Schleife
    guiSetState(@SW_SHOW)

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

    ;Button-Bedingungen
    While 1
    $msg = GUIGetMsg()
    Switch $msg
    ;"x"-Button
    case $gui_event_close
    FileDelete(@scriptdir & "\" & $ini)
    Exit
    ;Cancel
    Case $cancel
    FileDelete(@scriptdir & "\" & $ini)
    Exit
    ;CDType + FileType Combo
    Case $Combo3
    $auswahl = GUICtrlRead($Combo3)
    Switch $auswahl
    case "Data-CD"
    GUICtrlSetData($Combo4, "")
    GUICtrlSetData($Combo4, "*.avi|*.divx|*.xvid|*.*", "*.avi")
    case "SVCD"
    GUICtrlSetData($Combo4, "")
    GUICtrlSetData($Combo4, "*.mpg|*.mpeg", "*.mpg")
    case "VCD"
    GUICtrlSetData($Combo4, "")
    GUICtrlSetData($Combo4, "*.mpg|*.mpeg", "*.mpg")
    case "Image"
    GUICtrlSetData($Combo4, "")
    GUICtrlSetData($Combo4, "*.iso|*.nrg|*.bin|*.cue|*.img", "*.iso")
    EndSwitch
    ;Browse
    Case $browse
    $browseinput = FileSelectFolder("Please choose your Burning-Folder", "", 2)
    GUICtrlSetData($Input1, $browseinput,)
    ;OK
    Case $ok
    $recorder = GUICtrlRead($Combo1)
    $speed = GUICtrlRead($Combo2)
    $BurnDir = GUICtrlRead($Input1)
    $FileType = GUICtrlRead($Combo4)
    $CdType = GUICtrlRead($Combo3)
    IniWrite($ini, "Section1", "Recorder", $recorder)
    IniWrite($ini, "Section1", "Speed", $speed)
    IniWrite($ini, "Section2", "BurnDir", $BurnDir)
    IniWrite($ini, "Section2", "FileType", $FileType)
    IniWrite($ini, "Section3", "CD-Type", $CdType)
    If GUICtrlRead($checkbox1) = 1 Then
    IniWrite($ini, "Section4", "DeleteFiles", "1")
    Else
    IniWrite($ini, "Section4", "DeleteFiles", "0")
    EndIf
    GUIDelete($GUISettings)
    ExitLoop
    Exit
    EndSwitch
    WEnd

    Call("_OperationBurning")

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

    ;INI existiert
    Else
    $PathFound= IniRead($ini, "Nero", "NeroCMD", "")
    $inirecorder= IniRead($ini, "Section1", "Recorder", "")
    $inispeed = IniRead($ini, "Section1", "Speed", "")
    $iniBurnDir = IniRead($ini, "Section2", "BurnDir", "")
    $iniFileType = IniRead($ini, "Section2", "FileType", "")
    $iniCdType = IniRead($ini, "Section3", "CD-Type", "")

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

    ;erstelle GUI
    $GUISettings = GUICreate("Settings", 270, 200, -1, -1, -1, $WS_EX_ACCEPTFILES)
    ;official buttons
    $ok = GUICtrlCreateButton("&OK", 10, 170, 70)
    $cancel = GUICtrlCreateButton("&Cancel", 190, 170, 70)

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

    ;1st Tab
    GUICtrlCreateTab(0, 0, 270, 165)
    GUICtrlCreateTabItem("Burnsettings")
    ;Recorder
    GUICtrlCreateLabel("Choose your CD-Writer", 10, 30)
    $Combo1 = GUICtrlCreateCombo($inirecorder, 10, 50)
    ;suche nach brenner/cdrom
    $var = DriveGetDrive("cdrom")
    For $i = 1 to $var[0]
    GUICtrlSetData($Combo1,$var[$i],$var[1])
    Next
    ;speed
    GUICtrlCreateLabel("Choose CD-Writer Speed", 10, 90)
    $Combo2 = GUICtrlCreateCombo("", 10, 110)
    GUICtrlSetData(-1, "1|2|4|8|12|16|20|24|32|40|48|52", $inispeed)

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

    ;2nd Tab
    GUICtrlCreateTab(-1, -1, 270, 165)
    GUICtrlCreateTabItem("CD-Settings")
    ;CDType
    GUICtrlCreateLabel("Choose CD Type", 10, 30)
    $Combo3 = GUICtrlCreateCombo("", 10, 50)
    GUICtrlSetData(-1, "Data-CD|SVCD|VCD|Image", $iniCdType)

    ;3rd Tab
    GUICtrlCreateTab(-1, -1, 270, 165)
    GUICtrlCreateTabItem("Filesettings")
    ;BurnDir
    GUICtrlCreateLabel("Choose Burning-Dir", 10, 30)
    $Input1 = GUICtrlCreateInput($iniBurnDir, 10, 50, 180)
    GUICtrlSetState(-1, $GUI_ACCEPTFILES)
    $browse = GUICtrlCreateButton("&Browse", 195, 48, 70)
    ;FileType
    GUICtrlCreateLabel("Choose Extension", 10, 90)
    $Combo4 = GUICtrlCreateCombo("", 10, 110)
    GUICtrlSetData($Combo4, "*.avi|*.divx|*.vxid|*.mpg|*.mpeg|*.iso|*.nrg|*.img|*.bin|*.cue", $iniFileType)
    ;delete File
    $checkbox1 = GUICtrlCreateCheckbox("Delete Files?", 160, 110)
    $deletefiles = IniRead($ini, "Section4", "DeleteFiles", "0")
    if $deletefiles = 1 then
    GUICtrlSetState($checkbox1, 1)
    Else
    GUICtrlSetState($checkbox1, -1)
    EndIf

    ;"Show"-Schleife
    guiSetState(@SW_SHOW)

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

    ;Button-Bedingungen
    While 1
    $msg = GUIGetMsg()
    Switch $msg
    ;"x"-Button
    case $gui_event_close
    Exit
    ;Cancel
    Case $cancel
    Exit
    ;CDType + FileType Combo
    Case $Combo3
    $auswahl = GUICtrlRead($Combo3)
    Switch $auswahl
    case "Data-CD"
    GUICtrlSetData($Combo4, "")
    GUICtrlSetData($Combo4, "*.avi|*.divx|*.xvid|*.*", "*.avi")
    case "SVCD"
    GUICtrlSetData($Combo4, "")
    GUICtrlSetData($Combo4, "*.mpg|*.mpeg", "*.mpg")
    case "VCD"
    GUICtrlSetData($Combo4, "")
    GUICtrlSetData($Combo4, "*.mpg|*.mpeg", "*.mpg")
    case "Image"
    GUICtrlSetData($Combo4, "")
    GUICtrlSetData($Combo4, "*.iso|*.nrg|*.bin|*.cue|*.img", "*.iso")
    EndSwitch
    ;Browse
    Case $browse
    $browseinput = FileSelectFolder("Please choose your Burning-Folder", "", 2, $iniBurnDir)
    GUICtrlSetData($Input1, $browseinput,)
    ;OK
    Case $ok
    $recorder = GUICtrlRead($Combo1)
    $speed = GUICtrlRead($Combo2)
    $BurnDir = GUICtrlRead($Input1)
    $FileType = GUICtrlRead($Combo4)
    $CdType = GUICtrlRead($Combo3)
    IniWrite($ini, "Section1", "Recorder", $recorder)
    IniWrite($ini, "Section1", "Speed", $speed)
    IniWrite($ini, "Section2", "BurnDir", $BurnDir)
    IniWrite($ini, "Section2", "FileType", $FileType)
    IniWrite($ini, "Section3", "CD-Type", $CdType)
    If GUICtrlRead($checkbox1) = 1 Then
    IniWrite($ini, "Section4", "DeleteFiles", "1")
    Else
    IniWrite($ini, "Section4", "DeleteFiles", "0")
    EndIf
    GUIDelete($GUISettings)
    ExitLoop
    Exit
    EndSwitch
    WEnd

    Call("_OperationBurning")

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

    EndIf

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

    ;Function "Suche NeroCMD"
    Func ShowSubFolders($Folder)
    For $Subfolder in $Folder.SubFolders
    If FileExists($Subfolder.Path & "\" & $file) Then
    $PathFound = $Subfolder.Path & "\" & $file
    ;schreibe Pfad in ini
    IniWrite($ini, "Nero", "NeroCMD", $PathFound)
    ExitLoop
    EndIf
    ShowSubFolders( $Subfolder )
    Next
    EndFunc

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

    Func _OperationBurning()
    ;setzt den "aktuellen ordner" (wichtig für FileFindFirstFile)
    $path = FileChangeDir($BurnDir)
    ;starte suche
    $search = FileFindFirstFile($FileType)
    ;Fehlermeldung, falls keine Übereinstimmung
    If $search = -1 Then
    MsgBox(16, "Error", "No files/directories matched the search pattern")
    Exit
    EndIf

    ;suche weiter
    While 1
    $file = FileFindNextFile($search)
    If @error Then ExitLoop

    ;starte brennvorgang
    If GUICtrlRead($checkbox1) = 1 Then

    Select

    case $CdType = "Data-CD"
    RunWait("""" & $PathFound & """ --write --real --drivename " & $recorder & " --speed " & $speed & " --iso new """ & $BurnDir & "\" & $file & """", "", @SW_HIDE)
    ;gebe gebranntes file aus
    RunWait(@comspec & " /c echo " & $file & ">>burned.txt", "", @SW_HIDE)
    FileDelete($BurnDir & "\" & $file)
    MsgBox(64, "File was burned & deleted:", $file)
    CDTray($recorder, "close")

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

    case $CdType = "VCD"
    RunWait("""" & $PathFound & """ --write --real --drivename " & $recorder & " --speed " & $speed & " --videocd new """ & $BurnDir & "\" & $file & """", "", @SW_HIDE)
    ;gebe gebranntes file aus
    RunWait(@comspec & " /c echo " & $file & ">>burned.txt", "", @SW_HIDE)
    FileDelete($BurnDir & "\" & $file)
    MsgBox(64, "File was burned & deleted:", $file)
    CDTray($recorder, "close")

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

    case $CdType = "SVCD"
    RunWait("""" & $PathFound & """ --write --real --drivename " & $recorder & " --speed " & $speed & " --svideocd new """ & $BurnDir & "\" & $file & """", "", @SW_HIDE)
    ;gebe gebranntes file aus
    RunWait(@comspec & " /c echo " & $file & ">>burned.txt", "", @SW_HIDE)
    FileDelete($BurnDir & "\" & $file)
    MsgBox(64, "File was burned & deleted:", $file)
    CDTray($recorder, "close")

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

    case $CdType = "Image"
    RunWait("""" & $PathFound & """ --write --real --drivename " & $recorder & " --speed " & $speed & " --image new """ & $BurnDir & "\" & $file & """", "", @SW_HIDE)
    ;gebe gebranntes file aus
    RunWait(@comspec & " /c echo " & $file & ">>burned.txt", "", @SW_HIDE)
    FileDelete($BurnDir & "\" & $file)
    MsgBox(64, "File was burned & deleted:", $file)
    CDTray($recorder, "close")

    EndSelect

    ;starte brennvorgang
    Else

    Select

    case $CdType = "Data-CD"
    RunWait("""" & $PathFound & """ --write --real --drivename " & $recorder & " --speed " & $speed & " --iso new """ & $BurnDir & "\" & $file & """", "", @SW_HIDE)
    ;gebe gebranntes file aus
    RunWait(@comspec & " /c echo " & $file & ">>burned.txt", "", @SW_HIDE)
    MsgBox(64, "File was burned:", $file)
    CDTray($recorder, "close")

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

    case $CdType = "VCD"
    RunWait("""" & $PathFound & """ --write --real --drivename " & $recorder & " --speed " & $speed & " --videocd new """ & $BurnDir & "\" & $file & """", "", @SW_HIDE)
    ;gebe gebranntes file aus
    RunWait(@comspec & " /c echo " & $file & ">>burned.txt", "", @SW_HIDE)
    MsgBox(64, "File was burned:", $file)
    CDTray($recorder, "close")

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

    case $CdType = "SVCD"
    RunWait("""" & $PathFound & """ --write --real --drivename " & $recorder & " --speed " & $speed & " --svideocd new """ & $BurnDir & "\" & $file & """", "", @SW_HIDE)
    ;gebe gebranntes file aus
    RunWait(@comspec & " /c echo " & $file & ">>burned.txt", "", @SW_HIDE)
    MsgBox(64, "File was burned:", $file)
    CDTray($recorder, "close")

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

    case $CdType = "Image"
    RunWait("""" & $PathFound & """ --write --real --drivename " & $recorder & " --speed " & $speed & " --image new """ & $BurnDir & "\" & $file & """", "", @SW_HIDE)
    ;gebe gebranntes file aus
    RunWait(@comspec & " /c echo " & $file & ">>burned.txt", "", @SW_HIDE)
    MsgBox(64, "File was burned:", $file)
    CDTray($recorder, "close")

    EndSelect
    EndIf

    WEnd
    ;beendet die suche
    FileClose($search)
    MsgBox(64, "Finish", "NeroCMD Autoburner was proudly presented by sc4ry", 3)
    EndFunc

    [/autoit]

    PS: das programm ist mal wieder mit viel hilfe von diesem board enstanden. ich nenne mal keine namen, aber nur aus angst, wen zu vergessen =)

    altes post

    Spoiler anzeigen

    es ist zwar nicht die non-plus-ultra-umsetzung, aber es funzt (und die zeit drängte, da meine platte sonst platzt *g*)

    der ein oder andere kennt es, dass sich hier und da paar videos oder backup-dateien ansammeln, die sehensüchtig darauf warten, auf cd gepresst zu werden. aber das ist immer soooo umständlich, denn man muss das brenntool starten, die files aussuchen, brennen, bestätigen und weiß der geier was.
    also hab ich mich auf die suche gemacht, dies so einfach wie möglich zu machen. "leider" ist dazu nero nötig (bzw 3 dateien) ... ich wollte zwar auch weg von nero, aber es hat dieses schöne tool für die cmd dabei.

    naja, nachdem man ein paar angaben gemacht hat, muss man nacher nurnoch die cds wechseln, der rest sollte nun (hoffentlich) von alleine gehen.

    Dateien

    NeroCMD.AutoBurner.V2.exe 254,84 kB – 919 Downloads
  • DIM as double

    • sc4ry
    • 2. Mai 2007 um 20:15

    ok, bin schonmal froh das die frage nicht ganz so dumm war *g*

    werd ich mir mal angucken und versuchen dann in mein script zu basteln =) thx

  • DIM as double

    • sc4ry
    • 2. Mai 2007 um 19:44

    hiho,

    also ich weiss jetzt nicht, wie verpeilt meine frage ist, aber kann man auch werte DIMmen bei autoit (kenn es so von VBA)?

    prob ist, dass in ne inputbox habe, in der man nur zahlen eingeben soll.

    die inputbox soll zwar irgendwenn einer selectbox weichen, aber soweit bin ich halt noch net *g*

  • Einmalige Anfängerfrage

    • sc4ry
    • 2. Mai 2007 um 14:53

    gibt es in autoit eigentlich auch die "anykey" taste oO *g*

  • Einmalige Anfängerfrage

    • sc4ry
    • 2. Mai 2007 um 09:58

    hey, vllt kannst du hiermit was anfangen, hab ich aus nem anderen thread von ... lass mich nicht lügen, peethebee geklaut

    [autoit]

    #include <Misc.au3>

    $dll = DllOpen("user32.dll")

    While 1
    Sleep ( 250 )
    If _IsPressed("57", $dll) Then
    MsgBox(0,"_IsPressed", "End Key Pressed")
    ExitLoop
    EndIf
    WEnd
    DllClose($dll)

    [/autoit]
  • goto alternative

    • sc4ry
    • 2. Mai 2007 um 08:22

    hiho,

    ja klar kann ich das ganze auf it then ... else ... endif beruhen lassen. aber das code 2 mal drin ist, nervt micht.

    ok, das code mit goto nicht unbedingt sonderlich strukturiert ist, versteh ich noch, aber was is da anders bei funktionen?
    die sollen der übersicht halber, am ende stehen ... das gleiche kann ich mit goto ja auch machen, um wenigstens bissel struktur reinzukriegen *g*

    naja, nichts desto trotz werde ich drauf verzichten müssen und mir nen function basteln *g*

    schonmal danke für die hilfe/tips =)

  • goto alternative

    • sc4ry
    • 2. Mai 2007 um 07:50

    hey, ich habe zwar mit autoit erst ab V3 angefangen, wo :goto schon entfernt wurde, aber dennoch kenne ich es von batch-programmierung.
    ehrlich gesagt vermisse ich diese funktion.

    in der hilfe steht, dass man "schleifen" oä nehmen soll, aber irgendwie bleibt mir der sinn schleierhaft.

    ich habe jetzt ein script, um das komplett eine if-abfrage liegt. das gilt aber eigentlich nur für einen teil im script, das ende ist bei if then sowie else gleicht.
    diesen teil habe ich aber jetzt 2 mal in meinem script, was nicht unbedingt der übersichtlichkeit dient.
    schön wäre es doch wenn man es machen kann...

    if ... then
    mache dies und das
    dann :goto ende
    else
    mache was anderes
    dann :goto ende
    endif
    :ende

    wieso nehmen die einfach goto raus, es tut doch keinem weh *heul*
    aber was soll jetzt die alternative dafür sein, programmcode nicht doppelt zu haben. mit den schleifen komme ich da ja nicht weit, selbst wenn mir das bsp in der hilfe plausibel ist.
    einzige möglichkeit wäre dann eine funktion, oder? aber ist es da nicht einfacher, mit goto zu arbeiten?

  • Datei an (Brenn)-Programm senden

    • sc4ry
    • 1. Mai 2007 um 17:09

    hey, so klappt es schonmal super.
    hab jetzt das gröbste was reinsoll auch drin, nur eine sache nervt mich noch:

    diese variante habe ich zZ (immernoch)

    [autoit]


    run(@ComSpec)
    WinWaitActive("C:\WINDOWS\system32\cmd.exe")
    ControlSend("C:\WINDOWS\system32\cmd.exe", "", "", $PathFound & " --write --real --drivename " & $recorder & " --speed " & $speed & " --iso new """ & $BurnDir & "\" & $file & """" & "{Enter}")

    [/autoit]

    ich hätte aber gerne was wie

    [autoit]


    RunWait(@ComSpec & " /c " & $PathFound & " --write --real --drivename " & $recorder & " --speed " & $speed & " --iso new """ & $BurnDir & "\" & $file & """" & "{Enter}")

    [/autoit]


    oder

    [autoit]


    Run($PathFound & " --write --real --drivename " & $recorder & " --speed " & $speed & " --iso new """ & $BurnDir & "\" & $file & """" & "{Enter}")

    [/autoit]

    aber sowohl das eine als auch das andere geht nicht. hat jmd eine idee was ich falsch mache?

    PS: anschließend soll eine msgbox ausgegeben werden. so wie ich es zz nutze, kommt sie direkt, nachdem der befehl in die cmd eingegeben wurde.
    lieber wär es mir, wenn die msgbox nach dem brennvorgang kommt, also wahlweise, wenn nero die cd ausschmeißt. kann man das programmieren?
    PPS: gibt es auch eine funktion, die den brennspeed ermittelt?

  • Datei an (Brenn)-Programm senden

    • sc4ry
    • 1. Mai 2007 um 02:41

    schon spät (oder zu früh ?); hoffe es ist noch verständlich rüber gekommen.

    jain,,, also eigentlich schon, aber ich werds morgen nüchtern gucken/probieren, da grad von party gekommen ... wie man vllt merkt *g*


    aber werd mir alles angucken und durchlesen, muss ja noch viel lernen =)

  • Datei an (Brenn)-Programm senden

    • sc4ry
    • 30. April 2007 um 20:17

    ok, da oben hast recht, immer eifer des gefechtes *g*

    aber mit der function, wann wird die denn ausgeführt? weil, sofern die ini besteht, braucht die ja auch nicht mehr laufen, deswegen sollte die mit in die if-schleife rein?

  • Datei an (Brenn)-Programm senden

    • sc4ry
    • 30. April 2007 um 16:57

    dank dir bug, hab es jetzt fast fertig, aber irgendwas geht nicht.

    folgende variante geht (ist natürlich nicht ganz schlüssig, weil eine if..then fehlt)

    Spoiler anzeigen
    [autoit]

    ;
    ;suche nerocmd, suche brenner, cmd + parameter @hide, alles in ini
    ;NeroCMD AutoBurner V.1
    ;
    ;©sc4ry

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

    $ini = "NeroCMD AutoBurner.ini"
    MsgBox(0, "NeroCMD AutoBurner V.1 by sc4ry", "This little Programm will burn your specified Files as Data-CD, you only need a copy of Nero", 5)
    ;suche nach NeroCMD.exe
    Dim $file = "nerocmd.exe"
    Dim $SearchFolder = @ProgramFilesDir
    Dim $PathFound
    $FSO = ObjCreate("Scripting.FileSystemObject")
    Showsubfolders( $FSO.GetFolder($SearchFolder) )
    Func ShowSubFolders($Folder)
    For $Subfolder in $Folder.SubFolders
    If FileExists($Subfolder.Path & "\" & $file) Then
    $PathFound = $Subfolder.Path & "\" & $file
    ;schreibe Pfad in ini
    IniWrite($ini, "Files", "NeroCMD", $PathFound)
    ExitLoop
    EndIf
    ShowSubFolders( $Subfolder )
    Next
    EndFunc
    ;fehlermeldung wenn nicht gefunden
    if not FileExists($pathfound) Then
    MsgBox(16, "Error", "NeroCMD was not found on your PC, please install Nero first")
    exit
    Else
    EndIf
    ;suche nach brenner/cdrom
    $var = DriveGetDrive("cdrom")
    if not @error Then
    for $i = 1 to $var[0]
    ;schreibe lw in ini
    IniWrite($ini, "Drive", "Recorder", $var[$i])
    Next
    EndIf

    ;wähle Ordner mit zu brennenden Daten
    $BurnDir = FileSelectFolder("Please specify your burning folder", "", 2, "C:\")
    If @error Then
    ;lösche ini bei error, da sonst $BurnDir fehlt
    FileDelete(@scriptdir & "\" & $ini)
    Exit
    else
    ;schreibe $BurnDir in ini
    IniWrite($ini, "Path", "BurnDir", $BurnDir)
    endif
    ;setzt den "aktuellen ordner" (wichtig für FileFindFirstFile)
    $path = FileChangeDir($BurnDir)

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

    IniRead(@ScriptDir & "\" & $ini, "Files", "NeroCMD", "")
    $recorder = IniRead(@ScriptDir & "\" & $ini, "Drive", "Recorder", "")
    $IniBurn = IniRead(@ScriptDir & "\" & $ini, "Path", "BurnDir", "")

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

    ;wähle Ordner mit zu brennenden Daten
    $BurnDir = FileSelectFolder("Please specify your burning folder", "", 2, $IniBurn)
    If @error Then Exit
    ;setzt den "aktuellen ordner" (wichtig für FileFindFirstFile)
    $path = FileChangeDir($BurnDir)

    ;wähle zu suchenden Files
    $Files = Inputbox("Specify what to burn", "Please specify the files, you want to burn", "*.avi", "", 250, 100)
    If @error Then Exit
    $search = FileFindFirstFile($Files)
    ;gibt nacheinander in einer msgbox die gefunden files aus
    If $search = -1 Then
    MsgBox(16, "Error", "No files/directories matched the search pattern")
    Exit
    EndIf
    While 1
    $file = FileFindNextFile($search)
    If @error Then ExitLoop
    run(@comspec)
    WinWaitActive("C:\WINDOWS\system32\cmd.exe")
    Send($recorder) ;$PathFound & ' --write --real --drivename ' & $recorder & ' --speed 40 --iso new " ' & $BurnDir & '\' & $file & " ')
    ;MsgBox(0, "Burned:", $file)
    WEnd
    ;beendet die suche
    FileClose($search)

    [/autoit]

    das hier geht aber nicht, hab da die if...then bedingung drin.
    also sofern die ini existiert, kann er die ersten paar abfragen übersprigen, und soll diese aus der ini auslesen.

    Spoiler anzeigen
    [autoit]

    ;
    ;suche nerocmd, suche brenner, cmd + parameter @hide, alles in ini
    ;NeroCMD AutoBurner V.1
    ;
    ;©sc4ry

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

    $ini = "NeroCMD AutoBurner.ini"
    if not FileExists(@scriptdir & "/" & $ini) then
    MsgBox(0, "NeroCMD AutoBurner V.1 by sc4ry", "This little Programm will burn your specified Files as Data-CD, you only need a copy of Nero", 5)
    ;suche nach NeroCMD.exe
    Dim $file = "nerocmd.exe"
    Dim $SearchFolder = @ProgramFilesDir
    Dim $PathFound
    $FSO = ObjCreate("Scripting.FileSystemObject")
    Showsubfolders( $FSO.GetFolder($SearchFolder) )
    Func ShowSubFolders($Folder)
    For $Subfolder in $Folder.SubFolders
    If FileExists($Subfolder.Path & "\" & $file) Then
    $PathFound = $Subfolder.Path & "\" & $file
    ;schreibe Pfad in ini
    IniWrite($ini, "Files", "NeroCMD", $PathFound)
    ExitLoop
    EndIf
    ShowSubFolders( $Subfolder )
    Next
    EndFunc
    ;fehlermeldung wenn nicht gefunden
    if not FileExists($pathfound) Then
    MsgBox(16, "Error", "NeroCMD was not found on your PC, please install Nero first")
    exit
    Else
    EndIf
    ;suche nach brenner/cdrom
    $var = DriveGetDrive("cdrom")
    if not @error Then
    for $i = 1 to $var[0]
    ;schreibe lw in ini
    IniWrite($ini, "Drive", "Recorder", $var[$i])
    Next
    EndIf

    ;wähle Ordner mit zu brennenden Daten
    $BurnDir = FileSelectFolder("Please specify your burning folder", "", 2, "C:\")
    If @error Then
    ;lösche ini bei error, da sonst $BurnDir fehlt
    FileDelete(@scriptdir & "\" & $ini)
    Exit
    else
    ;schreibe $BurnDir in ini
    IniWrite($ini, "Path", "BurnDir", $BurnDir)
    endif
    ;setzt den "aktuellen ordner" (wichtig für FileFindFirstFile)
    $path = FileChangeDir($BurnDir)

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

    else
    IniRead(@ScriptDir & "\" & $ini, "Files", "NeroCMD", "")
    $recorder = IniRead(@ScriptDir & "\" & $ini, "Drive", "Recorder", "")
    $IniBurn = IniRead(@ScriptDir & "\" & $ini, "Path", "BurnDir", "")

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

    ;wähle Ordner mit zu brennenden Daten
    $BurnDir = FileSelectFolder("Please specify your burning folder", "", 2, $IniBurn)
    If @error Then Exit
    ;setzt den "aktuellen ordner" (wichtig für FileFindFirstFile)
    $path = FileChangeDir($BurnDir)

    ;wähle zu suchenden Files
    $Files = Inputbox("Specify what to burn", "Please specify the files, you want to burn", "*.avi", "", 250, 100)
    If @error Then Exit
    $search = FileFindFirstFile($Files)
    ;gibt nacheinander in einer msgbox die gefunden files aus
    If $search = -1 Then
    MsgBox(16, "Error", "No files/directories matched the search pattern")
    Exit
    EndIf
    While 1
    $file = FileFindNextFile($search)
    If @error Then ExitLoop
    run(@comspec)
    WinWaitActive("C:\WINDOWS\system32\cmd.exe")
    Send($recorder) ;$PathFound & ' --write --real --drivename ' & $recorder & ' --speed 40 --iso new " ' & $BurnDir & '\' & $file & " ')
    MsgBox(0, "Burned:", $file)
    WEnd
    ;beendet die suche
    FileClose($search)
    endif

    [/autoit]

    AutoIt3 Syntax Checker v1.54 Copyright (c) Tylo 2006

    F:\NeroCMD.AutoBurner.V1.au3(16,2) : ERROR: missing EndIf.
    Func
    ^
    F:\NeroCMD.AutoBurner.V1.au3(8,48) : REF: missing EndIf.
    if not FileExists(@scriptdir & "/" & $ini) then
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    F:\NeroCMD.AutoBurner.V1.au3(55,1) : ERROR: syntax error
    else
    ^
    F:\NeroCMD.AutoBurner.V1.au3 - 2 error(s), 0 warning(s)
    >Exit code: 2 Time: 1.599

    das sind die fehler die dabei rauskommen. aber FUNC geht zb in der anderen version, wo if...then fehlt.
    ich versteh es nicht.

  • Datei an (Brenn)-Programm senden

    • sc4ry
    • 29. April 2007 um 22:33

    hey,

    danke für die hilfe.
    also ich habe das script jetzt soweit fertig, dass es funktioniert *g*
    natürlich ist das nur die erste "billigversion" (für mich), die ich aber auch gerne so umschreiben würde, dass sie jeder benutzen kann.

    deswegen kommen noch ein paar änderungen rein, paar sind schon drin.

    rein soll noch:

    -suche nach nerocmd in programme ordner (suche noch ne möglichkeit, das


    Spoiler anzeigen
    [autoit]


    ;NeroCMD AutoBurner V.1
    ;
    ;©sc4ry

    MsgBox(0, "NeroCMD AutoBurner V.1 by sc4ry", "This little Programm will burn your specified Files as Data-CD, you only need a copy of Nero", 5)

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

    ;wähle Ordner mit zu brennenden Daten
    $BurnDir = FileSelectFolder("Please specify your burning folder", "", 2, "C:\")
    If @error Then Exit
    ;setzt den "aktuellen ordner" (wichtig für FileFindFirstFile)
    $path = FileChangeDir($BurnDir)

    ;wähle zu suchenden Files
    $Files = Inputbox("Specify what to burn", "Please specify the files, you want to burn", "*.avi", "", 250, 100)
    If @error Then Exit
    $search = FileFindFirstFile($Files)

    ;gibt nacheinander in einer msgbox die gefunden files aus
    If $search = -1 Then
    MsgBox(0, "Error", "No files/directories matched the search pattern")
    Exit
    EndIf

    While 1
    $file = FileFindNextFile($search)
    If @error Then ExitLoop
    Run(@comspec)
    winwaitactive("C:\windows\system32\cmd.exe")
    controlsend("C:\windows\system32\cmd.exe", "", "", "C:\programme\neroportableNeroCMD --write --real --drivename g --speed 40 --iso new """ & $BurnDir & "\" & $file & """{enter}")
    MsgBox(0, "Burned:", & $file)
    cdtray("g:", "close")
    WEnd

    ;beendet die suche
    FileClose($search)
    EndIf

    [/autoit]

    er in @programfilesdir suchen soll, aber auch in unterordnern; nutze grad fileexists, sucht aber nicht in unterordnern)
    -suche nach cd-brenner (suche nach "cdrom" und nehm standardmäßig den ersten; nutze drivegetdrive, gibt es was, as gezielt nach cd/dvd-brennern sucht?)
    -brennbefehl direkt an command-line, evtl in hide modus (hoffe das es mit hilfe von ExBerliner klappt, also ohne den wirklichen comspec befehl)
    -msgbox kommt nachdem brennen fertig ist (sollte mit runwait evtl gehen ... bin mir aber noch net sicher)

    für hilfe bin ich immer dankbar *g*

    wenn das soweit steht, kann man es zumindet schonmal auf mehreren pcs frei verwenden.
    danach denke ich noch an verschiedene sachen:
    -dl der nercmd.exe inkl. benötigen dateien (weiss zwar noch nicht was genau benötigt wird, aber werde ich dann in erfahrung bringen)
    -speed-ermittlung (könnte ich jetzt schon gebrauchen, aber noch keine funktion für gesehen)
    -gui in der man auswählen kann, was gebrannt werden soll (vcd, svcd, dvd-video, da im mom nur daten-cd)

  • tv kaputt

    • sc4ry
    • 29. April 2007 um 12:25

    hey, dank dir, so hatte ich mir das vorgestellt.
    ja, 100€ ist ein betrag, den ich bereit wäre zu bezahlen. zumal ich dann endlich wieder tv-out nutzen kann *g*

    dann werd ich den die woche mal zur reperatur bringen.

    thx =)

  • Zeig mir deinen und ich zeig dir meinen (Desktop)

    • sc4ry
    • 29. April 2007 um 12:22

    hier mal meiner, aber so ähnlich war er schon von wem anders, zumindest theme-mäßig =)

    Dateien

    desktop.jpg 420,68 kB – 0 Downloads
  • Datei an (Brenn)-Programm senden

    • sc4ry
    • 29. April 2007 um 09:58

    hiho,

    also nachdem ich endlich die zeit gefuden habe, dass zu testen, muss ich sagen, es klappt schonmal ganz gut.
    jetzt habe ich das script soweit angepasst und versucht, dass er das nächste file brennen soll, sobald ich die neue cd eingelegt und das lw geschlossen habe.

    aber irgendwie geht das nicht, er macht garnix (dazu kommt, dass der brennbefehl auf der cmd nicht klappt, aber da hab ich im mom auch noch nicht weitergeguckt).

    Spoiler anzeigen
    [autoit]

    ;
    ;
    ;UBurnMeCrazy
    ;
    ;©sc4ry

    ;starte cdbxp
    ;run("C:\Programme\CDBurnerXP Pro 3\cdbxp.exe", @SW_MAXIMIZE)

    ;gebe ordner an, wo zu brennende (avi-)files existieren
    $path = FileSelectFolder("Please specify your burning folder", "", 2, "K:\")

    ;setzt den aktuellen ordner (wichtig für FileFindFirstFile)
    $dir = FileChangeDir($path)

    ;sucht nach avi-files
    $search = FileFindFirstFile("*.avi")

    ;gibt nacheinander in einer msgbox die gefunden files aus
    If $search = -1 Then
    MsgBox(0, "Error", "No files/directories matched the search pattern")
    Exit
    EndIf

    While 1
    $ready = DriveStatus("G:\")
    while $ready = "Ready"
    $file = FileFindNextFile($search)
    If @error Then ExitLoop
    MsgBox(4096, "File:", $file)
    Run(@COMSPEC & " /c C:\Programme\Ahead\Nero>NeroCmd.exe --write --real --drivename g --speed 40 --iso new" & $dir & "\" & $file & "{enter}")
    wend
    WEnd

    ;beendet die suche
    FileClose($search)

    [/autoit]
  • tv kaputt

    • sc4ry
    • 28. April 2007 um 17:39

    hi, mein, knapp über 2 jahre alter tv, hat seinen geist (halb)
    aufgegeben.
    kostenvoranschlag kostet 40€, und je nachdem was dran ist, kann es ja
    auch einige 100€ kosten. da kann man sich dann teilweise auch nen
    neuen zulegen.

    nun wollt ich mal fragen, ob wer anhand des symptoms weiss, was er
    hat, und wieviel die reperatur über den daumen kosten könnte.

    also es ist ein ganz normaler röhrentv (dürften 76cm durchmesser
    sein).
    er zeigt noch bild an, aber nur in der mitte. rechts und links außen
    ist jeweile ein halbkreis, wo er kein bild mehr anzeigt.
    wo das passierte, hats natürlich auch ein wenig verbrand gerochen.

    weiss wer was das sein könnte?

  • richtiger contdown

    • sc4ry
    • 27. April 2007 um 20:44

    nein, so ist wunderbar, das brauch ich, thx =)

    jetzt wäre noch ne möglichkeit cool, den countdown abzubrechen, aber da wird sich noch was finden lassen.

  • richtiger contdown

    • sc4ry
    • 27. April 2007 um 15:44

    hiho,

    zwar was älter, aber ich könnt son timer gebrauchen (aber deiner, gtaspider, ist mir zu krass *g*)

    ich würde aber gerne eine variable mit ner zeit machen, und dann die variable im timer benutzen.
    leider scheint das nicht so einfach zu gehen, wie ichs mir vorgestellt habe, kann mir jmd nen tip geben?

  • IE-Projekt

    • sc4ry
    • 27. April 2007 um 15:14

    hallo,

    da ich bis jetzt dieses problemes nicht herr werden konnte, und mir auch keiner so richtig helfen konnte (auch aufm engl. board nicht), muss ich wohl oder übel zur alten methode zurück.

    nun aber eine frage zu den mouseclicks.
    kann ich die koordination auf das aktuelle fenster beziehen (also nicht auf den ganzen monitor), bzw, was wichtiger wäre, da ich des ie-fenster maximiert starten lasse, gibt es einen befehl, der die mousekoordination abhängig von der auflösung betrachtet?

    weiss nicht wie die praxis ist, aber ich könnte mir vorstellen, dass es rein theoretisch nicht so schwer ist, die koordinaten für eine auflösung von 1280*1024 auf 1024*768 umzurechnen, oder?

    nebenbei wurde mir auch ein vorschlag unterbreitet, wie jmd anderes es macht:

    $realsize = WinGetPos("Dell.com - Login - K-12 Education - Windows Internet Explorer")
    MouseClick("Left",$realsize[0]+60,$realsize[1]+578) ; 3 and 17 greater than next values
    MouseClick("Left",$realsize[0]+62,$realsize[1]+565)
    MouseClick("Left",$realsize[0]+208,$realsize[1]+565)
    sleep(3000)

    aber ehrlich gesagt komm ich damit nicht so klar. hab mir die hilfe (natürlich auf dt) angeguckt, und es auch ausprobiert, aber einen unterschied zum normalen mouseclick mit koordinaten konnte ich nicht feststellen???

  • Datei an (Brenn)-Programm senden

    • sc4ry
    • 27. April 2007 um 14:36

    danke, da hab ich am we ja wieder was zu tun *g*

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™