Ist es möglich einen .vbs Script in AutoIt "umzuwandeln"?

  • Hallo Mitglieder,

    Ich benutze für meine Thumbnails auf YouTube einen .vbs Script welcher die Textebene bearbeitet, sodass ich dies nicht manuell machen muss.

    So sieht der Code aus:

    Spoiler anzeigen

    Ist es möglich die Funktion dieses Scripts in AutoIt zu schreiben, sodass ich dort eine GUI einbauen kann.
    Dadurch müsste ich die Datei bei verschiedenen Projekten nicht erneut bearbeiten und könnte alles in der GUI festlegen.

    Ich hoffe mir kann einer ein wenig helfen und mir eventuell Tipps geben.

    Mit freundlichem Gruß,
    Daisuke

  • Sehe keinen Grund, warum das nicht in 5 Minuten in AutoIt umgewandelt sein sollte. AutoIt und VBS sind sich ja ziemlich ähnlich.

  • Vielen Dank für die Tipps.

    Ich werde mir mal den Link von minx anschauen.

    Ich war mir unsicher wegen diesen Zeilen:

    Spoiler anzeigen
    Code
    Set jpgSaveOptions = CreateObject( "Photoshop.JPEGSaveOptions" )
    jpgSaveOptions.EmbedColorProfile = True
    jpgSaveOptions.FormatOptions = 1 ' psStandardBaseline
    jpgSaveOptions.Matte = 1 ' psNoMatte
    jpgSaveOptions.Quality = quality
  • So sollte das in AutoIt aussehen (nicht getestet, einfach nur runtergetippt):

    [autoit]

    Global $iStart = 1 ; ***Erste Zahl***
    Global $iEnde = 2 ; ***Letzte Zahl***
    Global $sSpeicherpfad = "" ; ***Speicherpfad angeben***
    Global $sVortext = "0" ; ***Text vor der Nummer***
    Global $sNachtext = "" ; ***Text nach der Nummer***
    Global $iTextebene = 1 ; ***Auf welcher Ebene befindet sich der Text***
    Global $iQuality = 7 ; ***Qualität zwischen 1 und 12 wählen***

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

    Global $oAppref = ObjCreate("Photoshop.Application")
    If $oAppref.documents.count <> 0 Then
    Global $oDocref = $oAppref.ActiveDocument
    Else
    MsgBox(0, "", "Erst die Datei öffnen!")
    EndIf

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

    Global $oJpgSaveOptions = ObjCreate("Photoshop.JPEGSaveOptions")
    $oJpgSaveOptions.EmbedColorProfile = True
    $oJpgSaveOptions.FormatOptions = 1 ; psStandardBaseline
    $oJpgSaveOptions.Matte = 1 ; psNoMatte
    $oJpgSaveOptions.Quality = $iQuality

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

    Global $sOutFileName
    For $i = $iStart To $iEnde
    $oDocref.ArtLayers($iTextebene).TextItem.Contents = $sVortext & $i & $sNachtext
    $sOutFileName = $sSpeicherpfad & "\" & $i & ".jpg"
    $oDocRef.SaveAs($sOutFileName, $oJpgSaveOptions, True, $extType)
    Next

    [/autoit]


    $extType kommt nirgends vor, daher weiss ich nicht, was da reinkommt.

  • $extType und $qualaity kommt nirgends vor, daher weiss ich nicht, was da reinkommt.


    "quality" wird am anfang deklariert und wurde von dir mit $iQuality benannt (Zeile 20 muss also berichtigt werden). "extType" wird allerdings wirklich nirgendwo im vbs script erwähnt. Dafür hast du in Zeile 25 einen fehler eingebaut "i" muss natürlich "$i" heißen. ;)

  • Stimmt. Habe ich oben korrigiert. Darum aber auch der "Sicherheitshinweis" dass ich es nicht getestet hebe.

  • Danke water.

    Ich habe deinen Script genommen und in meine GUI eingebaut, bitte erschlagt mich nicht für die Unordentlichkeit.

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    ;-----GUI Elemente-----
    $GUI = GUICreate("Photoshop Thumbail Tool", 460, 183, 192, 148)
    $in_start = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "START", ""), 112, 13, 121, 21)
    $lbl_start = GUICtrlCreateLabel("Startnummer:", 13, 16, 85, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $in_end = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "ENDE", ""), 112, 37, 121, 21)
    $lbl_end = GUICtrlCreateLabel("Endnummer:", 20, 40, 78, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $lbl_path = GUICtrlCreateLabel("Speicherpfad:", 14, 120, 84, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $lbl_path_2 = GUICtrlCreateLabel(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "PFAD", ""), 112, 120, 300, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $btn_path = GUICtrlCreateButton("Durchsuchen", 112, 146, 75, 25)
    $in_vText = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "VORTEXT", ""), 328, 13, 121, 21)
    $lbl_vText = GUICtrlCreateLabel("Vortext:", 264, 16, 50, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $in_nText = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "NACHTEXT", ""), 328, 37, 121, 21)
    $lbl_nText = GUICtrlCreateLabel("Nachtext:", 256, 40, 58, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $in_layer = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "EBENE", ""), 112, 61, 121, 21)
    $lbl_layer = GUICtrlCreateLabel("Textebene:", 29, 64, 69, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $in_quality = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "QUALITAET", ""), 112, 88, 121, 21)
    $lbl_quality = GUICtrlCreateLabel("Qualität:", 45, 88, 53, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $btn_save = GUICtrlCreateButton("Speichern", 288, 144, 81, 25)
    $btn_start = GUICtrlCreateButton("Starten", 376, 144, 75, 25)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btn_path
    Search()
    Case $btn_save
    Save()
    Case $btn_start
    Start()

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

    EndSwitch
    WEnd

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

    $iStart = GuiCtrlRead($in_start)
    $iEnde = GuiCtrlRead($in_end)
    $sVortext = GUICtrlRead ($in_vText)
    $sNachtext = GUICtrlRead ($in_nText)
    $iTextebene = GUICtrlRead ($in_layer)
    $sSpeicherpfad = GuiCtrlRead($lbl_path_2)
    Global $i

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

    Global $oAppref = ObjCreate("Photoshop.Application")
    If $oAppref.documents.count <> 0 Then
    Global $oDocref = $oAppref.ActiveDocument
    Else
    MsgBox(0, "", "Erst die Datei öffnen!")
    EndIf

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

    Global $oJpgSaveOptions = ObjCreate("Photoshop.JPEGSaveOptions")
    $oJpgSaveOptions.EmbedColorProfile = True
    $oJpgSaveOptions.FormatOptions = 1 ; psStandardBaseline
    $oJpgSaveOptions.Matte = 1 ; psNoMatte
    $oJpgSaveOptions.Quality = GUICtrlRead($in_quality)

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

    ;-----Funktionen-----
    Func Search()
    $s_path = FileSelectFolder("Wähle bitte deinen Speicherort aus", "C:/")
    $in_path = GUICtrlSetData($lbl_path_2, $s_path)
    EndFunc ;==>Search

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

    Func Save()
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "START", GUICtrlRead($in_start))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "ENDE", GUICtrlRead($in_end))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "PFAD", GUICtrlRead($lbl_path_2))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "VORTEXT", GUICtrlRead($in_vText))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "NACHTEXT", GUICtrlRead($in_nText))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "EBENE", GUICtrlRead($in_layer))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "QUALITAET", GUICtrlRead($in_quality))
    EndFunc ;==>Save

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

    Func Start()
    Global $sOutFileName
    For $i = $iStart To $iEnde
    $oDocref.ArtLayers($iTextebene).TextItem.Contents = $sVortext & $i & $sNachtext
    $sOutFileName = $sSpeicherpfad & "\" & $i & ".jpg"
    $oDocref.SaveAs($sOutFileName, $oJpgSaveOptions, True)
    Next
    EndFunc ;==>Start

    [/autoit]

    Mir wird als Fehler folgendes angezeigt:

    Spoiler anzeigen
    Code
    C:\Users\Kazuto\Desktop\Neuer Ordner\AutoIt v3 Script (neu).au3 (91) : ==> Variable used without being declared.:
    For $i = $iStart To $iEnde
    For $i = ^ ERROR

    Wie kann ich diesen Fehler beheben?
    Ich habe es bereits mit Global $i versucht, der Fehler erscheint dennoch.

    ~EDIT~
    Ich habe nun alles in die Funktion gepackt.
    Er holt Photoshop zwar nun in den Vordergrund jedoch wird an der Ebene nichts verändert und ebenfalls keine Datei gespeichert.

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    ;-----GUI Elemente-----
    $GUI = GUICreate("Photoshop Thumbail Tool", 460, 183, 192, 148)
    $in_start = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "START", ""), 112, 13, 121, 21)
    $lbl_start = GUICtrlCreateLabel("Startnummer:", 13, 16, 85, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $in_end = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "ENDE", ""), 112, 37, 121, 21)
    $lbl_end = GUICtrlCreateLabel("Endnummer:", 20, 40, 78, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $lbl_path = GUICtrlCreateLabel("Speicherpfad:", 14, 120, 84, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $lbl_path_2 = GUICtrlCreateLabel(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "PFAD", ""), 112, 120, 300, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $btn_path = GUICtrlCreateButton("Durchsuchen", 112, 146, 75, 25)
    $in_vText = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "VORTEXT", ""), 328, 13, 121, 21)
    $lbl_vText = GUICtrlCreateLabel("Vortext:", 264, 16, 50, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $in_nText = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "NACHTEXT", ""), 328, 37, 121, 21)
    $lbl_nText = GUICtrlCreateLabel("Nachtext:", 256, 40, 58, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $in_layer = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "EBENE", ""), 112, 61, 121, 21)
    $lbl_layer = GUICtrlCreateLabel("Textebene:", 29, 64, 69, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $cmb_quality = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "QUALITAET", ""), 112, 88, 121, 21)
    $lbl_quality = GUICtrlCreateLabel("Qualität:", 45, 88, 53, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $btn_save = GUICtrlCreateButton("Speichern", 288, 144, 81, 25)
    $btn_start = GUICtrlCreateButton("Starten", 376, 144, 75, 25)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btn_path
    Search()
    Case $btn_save
    Save()
    Case $btn_start
    Start()

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

    EndSwitch
    WEnd

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

    Global $iStart = GUICtrlRead($in_start)
    Global $iEnde = GUICtrlRead($in_end)
    Global $sVortext = GUICtrlRead($in_vText)
    Global $sNachtext = GUICtrlRead($in_nText)
    Global $iTextebene = GUICtrlRead($in_layer)
    Global $sSpeicherpfad = GUICtrlRead($lbl_path_2)

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

    ;-----Funktionen-----
    Func Search()
    $s_path = FileSelectFolder("Wähle bitte deinen Speicherort aus", "C:/")
    $in_path = GUICtrlSetData($lbl_path_2, $s_path)
    EndFunc ;==>Search

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

    Func Save()
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "START", GUICtrlRead($in_start))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "ENDE", GUICtrlRead($in_end))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "PFAD", GUICtrlRead($lbl_path_2))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "VORTEXT", GUICtrlRead($in_vText))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "NACHTEXT", GUICtrlRead($in_nText))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "EBENE", GUICtrlRead($in_layer))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "QUALITAET", GUICtrlRead($cmb_quality))
    EndFunc ;==>Save

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

    Func Start()
    Global $oAppref = ObjCreate("Photoshop.Application")
    If $oAppref.documents.count <> 0 Then
    Global $oDocref = $oAppref.ActiveDocument
    Else
    MsgBox(0, "", "Erst die Datei öffnen!")
    EndIf

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

    Global $oJpgSaveOptions = ObjCreate("Photoshop.JPEGSaveOptions")
    $oJpgSaveOptions.EmbedColorProfile = True
    $oJpgSaveOptions.FormatOptions = 1 ; psStandardBaseline
    $oJpgSaveOptions.Matte = 1 ; psNoMatte
    $oJpgSaveOptions.Quality = GUICtrlRead($cmb_quality)

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

    Global $sOutFileName
    For $i = $iStart To $iEnde
    $oDocref.ArtLayers($iTextebene).TextItem.Contents = $sVortext & $i & $sNachtext
    $sOutFileName = $sSpeicherpfad & "\" & $i & ".jpg"
    $oDocref.SaveAs($sOutFileName, $oJpgSaveOptions, True)
    Next
    EndFunc ;==>Start

    [/autoit]

    3 Mal editiert, zuletzt von Kazuto (31. März 2013 um 23:41)

  • Kann so auch nicht funktionieren.

    1. Code der nach deiner GUI Endlosschleife folgt wird nicht ausgeführt, das Script kommt niemals an diese Stelle im Script.
    2. Deine Variablen sind somit nicht deklariert.
    3. Selbst wenn du diese am Scriptanfang deklarieren würdest würden sie nur den Anfangswert der in den Inputfeldern steht beinhalten und nicht die ggf. später von Hand geänderten Werte.

    Da du diese Variablen ohnehin nur lokal benötigst solltest du diese auch nur lokal innerhalb der Start() Funktion deklarieren.

    Ein lauffähiges Script (auf die Autoit Syntax bezogen) würde z.B. so ausschaun:


    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    ;-----GUI Elemente-----
    $GUI = GUICreate("Photoshop Thumbail Tool", 460, 183, 192, 148)
    $in_start = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "START", ""), 112, 13, 121, 21)
    $lbl_start = GUICtrlCreateLabel("Startnummer:", 13, 16, 85, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $in_end = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "ENDE", ""), 112, 37, 121, 21)
    $lbl_end = GUICtrlCreateLabel("Endnummer:", 20, 40, 78, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $lbl_path = GUICtrlCreateLabel("Speicherpfad:", 14, 120, 84, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $lbl_path_2 = GUICtrlCreateLabel(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "PFAD", ""), 112, 120, 300, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $btn_path = GUICtrlCreateButton("Durchsuchen", 112, 146, 75, 25)
    $in_vText = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "VORTEXT", ""), 328, 13, 121, 21)
    $lbl_vText = GUICtrlCreateLabel("Vortext:", 264, 16, 50, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $in_nText = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "NACHTEXT", ""), 328, 37, 121, 21)
    $lbl_nText = GUICtrlCreateLabel("Nachtext:", 256, 40, 58, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $in_layer = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "EBENE", ""), 112, 61, 121, 21)
    $lbl_layer = GUICtrlCreateLabel("Textebene:", 29, 64, 69, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $cmb_quality= GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "QUALITAET", ""), 112, 88, 121, 21)
    $lbl_quality= GUICtrlCreateLabel("Qualität:", 45, 88, 53, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $btn_save = GUICtrlCreateButton("Speichern", 288, 144, 81, 25)
    $btn_start = GUICtrlCreateButton("Starten", 376, 144, 75, 25)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btn_path
    Search()
    Case $btn_save
    Save()
    Case $btn_start
    Start()
    EndSwitch
    WEnd

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

    ;-----Funktionen-----
    Func Search()
    $s_path = FileSelectFolder("Wähle bitte deinen Speicherort aus", "C:/")
    $in_path = GUICtrlSetData($lbl_path_2, $s_path)
    EndFunc ;==>Search

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

    Func Save()
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "START", GUICtrlRead($in_start))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "ENDE", GUICtrlRead($in_end))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "PFAD", GUICtrlRead($lbl_path_2))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "VORTEXT", GUICtrlRead($in_vText))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "NACHTEXT", GUICtrlRead($in_nText))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "EBENE", GUICtrlRead($in_layer))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "QUALITAET", GUICtrlRead($cmb_quality))
    EndFunc ;==>Save

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

    Func Start()
    Local $iStart = GUICtrlRead($in_start)
    Local $iEnde = GUICtrlRead($in_end)
    Local $sVortext = GUICtrlRead($in_vText)
    Local $sNachtext = GUICtrlRead($in_nText)
    Local $iTextebene = GUICtrlRead($in_layer)
    Local $sSpeicherpfad = GUICtrlRead($lbl_path_2)
    Local $iQuality = GUICtrlRead($cmb_quality)

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

    Local $oAppref = ObjCreate("Photoshop.Application")
    If $oAppref.documents.count <> 0 Then
    Local $oDocref = $oAppref.ActiveDocument
    Else
    MsgBox(0, "", "Erst die Datei öffnen!")
    Return ; ansonsten ist $oDocref nicht deklariert, du verwendest die Variable aber weiter unten, also muss die Funktion hier mit Fehler abgebrochen werden...
    EndIf

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

    Local $oJpgSaveOptions = ObjCreate("Photoshop.JPEGSaveOptions")
    $oJpgSaveOptions.EmbedColorProfile = True
    $oJpgSaveOptions.FormatOptions = 1 ; psStandardBaseline
    $oJpgSaveOptions.Matte = 1 ; psNoMatte
    $oJpgSaveOptions.Quality = $iQuality

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

    Local $sOutFileName
    For $i = $iStart To $iEnde
    $oDocref.ArtLayers($iTextebene).TextItem.Contents = $sVortext & $i & $sNachtext
    $sOutFileName = $sSpeicherpfad & "\" & $i & ".jpg"
    $oDocref.SaveAs($sOutFileName, $oJpgSaveOptions, True)
    Next
    EndFunc ;==>Start

    [/autoit]

    Einmal editiert, zuletzt von misterspeed (1. April 2013 um 00:29)

  • So sollte es funktionieren:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    ;-----GUI Elemente-----
    $GUI = GUICreate("Photoshop Thumbail Tool", 460, 183, 192, 148)
    $in_start = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "START", ""), 112, 13, 121, 21)
    $lbl_start = GUICtrlCreateLabel("Startnummer:", 13, 16, 85, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $in_end = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "ENDE", ""), 112, 37, 121, 21)
    $lbl_end = GUICtrlCreateLabel("Endnummer:", 20, 40, 78, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $lbl_path = GUICtrlCreateLabel("Speicherpfad:", 14, 120, 84, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $lbl_path_2 = GUICtrlCreateLabel(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "PFAD", ""), 112, 120, 300, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $btn_path = GUICtrlCreateButton("Durchsuchen", 112, 146, 75, 25)
    $in_vText = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "VORTEXT", ""), 328, 13, 121, 21)
    $lbl_vText = GUICtrlCreateLabel("Vortext:", 264, 16, 50, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $in_nText = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "NACHTEXT", ""), 328, 37, 121, 21)
    $lbl_nText = GUICtrlCreateLabel("Nachtext:", 256, 40, 58, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $in_layer = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "EBENE", ""), 112, 61, 121, 21)
    $lbl_layer = GUICtrlCreateLabel("Textebene:", 29, 64, 69, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $in_quality = GUICtrlCreateInput(IniRead(@ScriptDir & "/settings.ini", "CONFIG", "QUALITAET", ""), 112, 88, 121, 21)
    $lbl_quality = GUICtrlCreateLabel("Qualität:", 45, 88, 53, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $btn_save = GUICtrlCreateButton("Speichern", 288, 144, 81, 25)
    $btn_start = GUICtrlCreateButton("Starten", 376, 144, 75, 25)
    GUISetState(@SW_SHOW)

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

    $iStart = GUICtrlRead($in_start)
    $iEnde = GUICtrlRead($in_end)
    $sVortext = GUICtrlRead($in_vText)
    $sNachtext = GUICtrlRead($in_nText)
    $iTextebene = GUICtrlRead($in_layer)
    $sSpeicherpfad = GUICtrlRead($lbl_path_2)
    Global $oAppref = ObjCreate("Photoshop.Application")
    If $oAppref.documents.count <> 0 Then
    Global $oDocref = $oAppref.ActiveDocument
    Else
    MsgBox(0, "", "Erst die Datei öffnen!")
    EndIf

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

    Global $oJpgSaveOptions = ObjCreate("Photoshop.JPEGSaveOptions")
    $oJpgSaveOptions.EmbedColorProfile = True
    $oJpgSaveOptions.FormatOptions = 1 ; psStandardBaseline
    $oJpgSaveOptions.Matte = 1 ; psNoMatte
    $oJpgSaveOptions.Quality = GUICtrlRead($in_quality)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btn_path
    Search()
    Case $btn_save
    Save()
    Case $btn_start
    Start()

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

    EndSwitch
    WEnd

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

    ;-----Funktionen-----
    Func Search()
    $s_path = FileSelectFolder("Wähle bitte deinen Speicherort aus", "C:/")
    $in_path = GUICtrlSetData($lbl_path_2, $s_path)
    EndFunc ;==>Search

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

    Func Save()
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "START", GUICtrlRead($in_start))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "ENDE", GUICtrlRead($in_end))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "PFAD", GUICtrlRead($lbl_path_2))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "VORTEXT", GUICtrlRead($in_vText))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "NACHTEXT", GUICtrlRead($in_nText))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "EBENE", GUICtrlRead($in_layer))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "QUALITAET", GUICtrlRead($in_quality))
    EndFunc ;==>Save

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

    Func Start()
    Global $sOutFileName
    For $i = $iStart To $iEnde
    $oDocref.ArtLayers($iTextebene).TextItem.Contents = $sVortext & $i & $sNachtext
    $sOutFileName = $sSpeicherpfad & "\" & $i & ".jpg"
    $oDocref.SaveAs($sOutFileName, $oJpgSaveOptions, True)
    Next
    EndFunc ;==>Start

    [/autoit]

    mfg autoBert

  • Vielen Dank für die Antworten.

    Okay, das wusste ich noch nicht misterspeed.

    autoBert, leider bleibt bei deinem Code die GUI hängen, jedoch passiert nichts in Photoshop.

    Anscheinend ist ein solches Programm noch zu komplex für mich.

  • misterspeed, ja deinen Code habe ich ebenfalls getestet, wobei sich jedoch nichts veändert hat.
    Photoshop wird nach wie vor in den Vordergrund geholt, jedoch werden die Ebenen nicht bearbeitet und auch keine Bilder gespeichert.

  • Welche AutoIt Version setzt Du ein?

  • Wenn Du das Script aus SciTE heraus laufen lässt, kriegst Du im Ausgabebereich von SciTE (unterer Teil) irgendwelche Fehlermeldungen?

  • Wirf mal "Opt("TrayIconDebug", 1) an den Anfang Deines Scripts. Dann zeigt Dir das tray icon (wenn Du mit der Maus drüberfährst) immer das gerade ausgeführte Statement an.

  • Das zeigt folgendes an sobald ich auf Start drücke:

    Code
    AutoIt v3 Script (neu).au3
    Line 41: $nMsg = GUIGetMsg()

    Mir ist aufgefallen dass sich das Programm nach einigen Sekunden selbst beendet.
    Die GUI ist regungslos sobald ich einmal auf Start gedrückt habe.

    Ah, jetzt wird mir ein Fehler angezeigt wenn sich das Programm selbst beendet:

    Code
    C:\Users\Kazuto\Desktop\Neuer Ordner\AutoIt v3 Script (neu).au3 (80) : ==> Variable must be of type "Object".:
    If $oAppref.documents.count <> 0 Then
    If $oAppref^ ERROR