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

  • Dann füge doch nach

    [autoit]

    Global $oAppref = ObjCreate("Photoshop.Application")

    [/autoit]

    folgende Zeile ein

    [autoit]

    If @error Then Exit MsgBox(0,"Error", "Error " & @error & " bei ObjCreate für Photoshop!")

    [/autoit]

    Bist Du sicher, dass Photoshop installiert ist?

  • Aber trotzdem scheint das Skript ein Problem zu haben das Objekt anzulegen.
    Und ich frage immer sicherheitshalber. Im engl. Forum hatte ich mal einen User der sich wunderte, warum sein Skript immer abrauchte, bis sich rausstellte, dass er gar kein Excel installiert hatte.
    Als nächstes solltest Du einen COM error handler einrichten, damit wir möglichst viel Info über den Fehler bekommen. Siehe Funktion ObjEvent.

  • Ich habe folgendes aus ObjEvent in meinen Code gepackt:

    Spoiler anzeigen
    [autoit]

    ; User's COM error function. Will be called if COM error occurs
    Func _ErrFunc($oError)
    ; Do anything here.
    ConsoleWrite("err.number is: " & @TAB & $oError.number & @CRLF & _
    "err.windescription:" & @TAB & $oError.windescription & @CRLF & _
    "err.description is: " & @TAB & $oError.description & @CRLF & _
    "err.source is: " & @TAB & $oError.source & @CRLF & _
    "err.helpfile is: " & @TAB & $oError.helpfile & @CRLF & _
    "err.helpcontext is: " & @TAB & $oError.helpcontext & @CRLF & _
    "err.lastdllerror is: " & @TAB & $oError.lastdllerror & @CRLF & _
    "err.scriptline is: " & @TAB & $oError.scriptline & @CRLF & _
    "err.retcode is: " & @TAB & $oError.retcode & @CRLF & @CRLF)
    EndFunc ;==>_ErrFunc

    [/autoit]

    Jedoch wird keine Konsole geöffnet. In den Beispiel bei ObjEvent sehe ich aber auch nicht wo diese Funktion aufgerufen werden soll.

    ~EDIT~
    Habe doch gefunden wo die Funktion aufgerufen wird.

    Folgendes wird in der Konsole ausgespuckt:

    Spoiler anzeigen

    err.number is: -2146959355
    err.windescription: Starten des Servers fehlgeschlagen

    err.description is:
    err.source is:
    err.helpfile is:
    err.helpcontext is: 0
    err.lastdllerror is: 0
    err.scriptline is: 80
    err.retcode is: 0

    err.number is: 169
    err.windescription: Variable must be of type 'Object'.
    err.description is:
    err.source is:
    err.helpfile is:
    err.helpcontext is: 0
    err.lastdllerror is: 0
    err.scriptline is: 82
    err.retcode is: 0

    err.number is: -2146959355
    err.windescription: Starten des Servers fehlgeschlagen

    err.description is:
    err.source is:
    err.helpfile is:
    err.helpcontext is: 0
    err.lastdllerror is: 0
    err.scriptline is: 88
    err.retcode is: 0

    err.number is: 169
    err.windescription: Variable must be of type 'Object'.
    err.description is:
    err.source is:
    err.helpfile is:
    err.helpcontext is: 0
    err.lastdllerror is: 0
    err.scriptline is: 89
    err.retcode is: 0

    err.number is: 169
    err.windescription: Variable must be of type 'Object'.
    err.description is:
    err.source is:
    err.helpfile is:
    err.helpcontext is: 0
    err.lastdllerror is: 0
    err.scriptline is: 90
    err.retcode is: 0

    err.number is: 169
    err.windescription: Variable must be of type 'Object'.
    err.description is:
    err.source is:
    err.helpfile is:
    err.helpcontext is: 0
    err.lastdllerror is: 0
    err.scriptline is: 91
    err.retcode is: 0

    err.number is: 169
    err.windescription: Variable must be of type 'Object'.
    err.description is:
    err.source is:
    err.helpfile is:
    err.helpcontext is: 0
    err.lastdllerror is: 0
    err.scriptline is: 92
    err.retcode is: 0

    So sieht derzeit der Code aus:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    Opt("TrayIconDebug", 1)

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

    Global $i

    [/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]

    ;-----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 $oErrorHandler = ObjEvent("AutoIt.Error", "_ErrFunc")
    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)

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

    Global $oAppref = ObjCreate("Photoshop.Application")

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

    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] [autoit][/autoit] [autoit]

    Func _ErrFunc($oError)
    ; Do anything here.
    ConsoleWrite("err.number is: " & @TAB & $oError.number & @CRLF & _
    "err.windescription:" & @TAB & $oError.windescription & @CRLF & _
    "err.description is: " & @TAB & $oError.description & @CRLF & _
    "err.source is: " & @TAB & $oError.source & @CRLF & _
    "err.helpfile is: " & @TAB & $oError.helpfile & @CRLF & _
    "err.helpcontext is: " & @TAB & $oError.helpcontext & @CRLF & _
    "err.lastdllerror is: " & @TAB & $oError.lastdllerror & @CRLF & _
    "err.scriptline is: " & @TAB & $oError.scriptline & @CRLF & _
    "err.retcode is: " & @TAB & $oError.retcode & @CRLF & @CRLF)
    EndFunc

    [/autoit]

    ~EDIT 2~
    Ich weiß nun woran der Fehler liegt.
    Ich hatte die 64bit Version von Photoshop geöffnet, bei der 32bit Version funktioniert es.
    Zumindest wird das Fenster "Photoshop.JPEGSaveOptions" geöffnet. Danach passiert aber nichts.
    Er speichert die Bilder nicht automatisch, verändert hat er die Textebene auch nicht.

    Eher gesagt öffnet er das "Speichern als" Fenster.

    2 Mal editiert, zuletzt von Kazuto (2. April 2013 um 16:40)

  • Fehler vom COM error handler gibt es nun keine mehr? Auch wenn die Bilder noch nicht gespeichert werden?

  • Doch, diese beiden hier:

    Spoiler anzeigen

    Ich habe nun den ersten Fehler beseitigt und zeitgleich meinen Quellcode aufgeräumt, für mich zumindest.

    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)
    $iStart = GUICtrlCreateInput("", 112, 15, 121, 21)
    $lStart = GUICtrlCreateLabel("Startnummer:", 13, 16, 85, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $iEnde = GUICtrlCreateInput("", 112, 39, 121, 21)
    $lEnde = GUICtrlCreateLabel("Endnummer:", 20, 40, 78, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $iTextebene = GUICtrlCreateInput("", 112, 63, 121, 21)
    $lTextebene = GUICtrlCreateLabel("Textebene:", 29, 64, 69, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $iQualitaet = GUICtrlCreateInput("", 112, 87, 121, 21)
    $lQualitaet = GUICtrlCreateLabel("Qualität:", 45, 88, 53, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $lSpeicherpfad = GUICtrlCreateLabel("Speicherpfad:", 14, 120, 84, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $sSpeicherpfad = GUICtrlCreateLabel("", 112, 120, 300, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $bSpeicherpfad = GUICtrlCreateButton("Durchsuchen", 112, 146, 75, 25)
    $sVortext = GUICtrlCreateInput("", 328, 15, 121, 21)
    $lVortext = GUICtrlCreateLabel("Vortext:", 264, 16, 50, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $sNachtext = GUICtrlCreateInput("", 328, 39, 121, 21)
    $lNachtext = GUICtrlCreateLabel("Nachtext:", 256, 40, 58, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Tahoma")
    $bSpeichern = GUICtrlCreateButton("Speichern", 288, 144, 81, 25)
    $bStarten = GUICtrlCreateButton("Starten", 376, 144, 75, 25)
    GUISetState(@SW_SHOW)

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

    ;-----Werte auslesen und ersetzen------
    $rStart = IniRead(@ScriptDir & "/settings.ini", "CONFIG", "START", "")
    $rEnde = IniRead(@ScriptDir & "/settings.ini", "CONFIG", "ENDE", "")
    $rSpeicherpfad = IniRead(@ScriptDir & "/settings.ini", "CONFIG", "SPEICHERPFAD", "")
    $rVortext = IniRead(@ScriptDir & "/settings.ini", "CONFIG", "VORTEXT", "")
    $rNachtext = IniRead(@ScriptDir & "/settings.ini", "CONFIG", "NACHTEXT", "")
    $rTextebene = IniRead(@ScriptDir & "/settings.ini", "CONFIG", "EBENE", "")
    $rQualitaet = IniRead(@ScriptDir & "/settings.ini", "CONFIG", "QUALITAET", "")
    GUICtrlSetData($iStart, $rStart)
    GUICtrlSetData($iEnde, $rEnde)
    GUICtrlSetData($sSpeicherpfad, $rSpeicherpfad)
    GUICtrlSetData($sVortext, $rVortext)
    GUICtrlSetData($sNachtext, $rNachtext)
    GUICtrlSetData($iTextebene, $rTextebene)
    GUICtrlSetData($iQualitaet, $rQualitaet)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $bSpeicherpfad
    Suche()
    Case $bSpeichern
    Speichern()
    Case $bStarten
    Starten()

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

    EndSwitch
    WEnd

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

    ;-----Funktionen-----
    Func Suche()
    $Pfadsuche = FileSelectFolder("Wähle bitte deinen Speicherort aus", "C:/")
    GUICtrlSetData($sSpeicherpfad, $Pfadsuche)
    EndFunc ;==>Suche

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

    Func Speichern()
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "START", GUICtrlRead($iStart))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "ENDE", GUICtrlRead($iEnde))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "SPEICHERPFAD", GUICtrlRead($sSpeicherpfad))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "VORTEXT", GUICtrlRead($sVortext))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "NACHTEXT", GUICtrlRead($sNachtext))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "EBENE", GUICtrlRead($iTextebene))
    IniWrite(@ScriptDir & "/settings.ini", "CONFIG", "QUALITAET", GUICtrlRead($iQualitaet))
    EndFunc ;==>Speichern

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

    Func Starten()
    Local $oErrorHandler = ObjEvent("AutoIt.Error", "_ErrFunc")

    [/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($iQualitaet)

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

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

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

    Func _ErrFunc($oError)
    ; Do anything here.
    ConsoleWrite("err.number is: " & @TAB & $oError.number & @CRLF & _
    "err.windescription:" & @TAB & $oError.windescription & @CRLF & _
    "err.description is: " & @TAB & $oError.description & @CRLF & _
    "err.source is: " & @TAB & $oError.source & @CRLF & _
    "err.helpfile is: " & @TAB & $oError.helpfile & @CRLF & _
    "err.helpcontext is: " & @TAB & $oError.helpcontext & @CRLF & _
    "err.lastdllerror is: " & @TAB & $oError.lastdllerror & @CRLF & _
    "err.scriptline is: " & @TAB & $oError.scriptline & @CRLF & _
    "err.retcode is: " & @TAB & $oError.retcode & @CRLF & @CRLF)
    EndFunc ;==>_ErrFunc

    [/autoit]

    Nun ist nur noch der letztere Fehler enthalten.

    Code
    err.description is: 	No such element
    err.source is: 	Adobe Photoshop
    err.helpfile is: 	
    err.helpcontext is: 	0
    err.lastdllerror is: 	0
    err.scriptline is: 	102
    err.retcode is: 	-2147352565

    5 Mal editiert, zuletzt von Kazuto (2. April 2013 um 18:40)

  • Also einen Fehler sehe ich definitiv:

    [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)

    [/autoit]

    $sSpeicherpfad ist nicht der Pfad, sondern beinhaltet lediglich die ControlID deines Labels, also eine Zahl. Du kannst hier entweder $rSpeicherpfad verwenden, oder aber du verwendest

    [autoit]

    guictrlread($sSpeicherpfad )

    [/autoit]

    Falls das nicht die Ursache für den COM Fehler sein sollte würde ich anhand der Zeilennummer vermuten, dass diese Zeile falsche Werte beinhaltet:

    [autoit]

    $oDocref.ArtLayers($iTextebene).TextItem.Contents = $sVortext & $i & $sNachtext

    [/autoit]

    Daher würde ich vor dieser Zeile etwas Debugging betreiben und mir die Variableninhalte ausgeben lassen:

    [autoit]


    consolewrite($iTextebene & " / " & $sVortext & " / " & $i & " / " & $sNachtext & @crlf)

    [/autoit]

    Ahja jetzt beim schreiben fällt mir auf, dass hier sehr sicher ein Fehler steckt, denn du begehst den selben Fehler wie auch schon bei der Variable $sSpeicherpfad. Das Problem sollte also nach Korrektur dieser Variablen behoben sein.


    EDIT:

    Kleiner Nachtrag noch... Globale Variablen sollte man grundsätzlich am Scriptanfang und niemals innerhalb von Funktionen deklarieren, andernfalls kann das Script abstürzen wenn eine Funktion die Variable nutzen möchte bevor die deklarierende Funktion aufgerufen wurde. Nach Möglichkeit sollte man globale Variablen generell sparsam einsetzen. Soweit ich das sehe benötigst du die Variablen außerhalb deiner Start Funktion aber garnicht, sondern lediglich innerhalb der Funktion. Daher solltest du diese auch lokal deklarieren.

    Einmal editiert, zuletzt von misterspeed (2. April 2013 um 18:46)

  • Das mit GuiCtrlRead habe ich schon gemerkt, trotzdem danke.

    [autoit]

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

    [/autoit]

    So sieht es derzeit aus, da ich dort GUICtrlRead eingesetzt habe musste ich dies auch bei consolewrite einsetzen.

    Die Werte die die Console auspuckt sind richtig.
    1 / 0 / 1 /
    Ebene 1 / Vortext 0 / $i = 1 / Kein Nachtext

    ~EDIT~
    Das mit den Globalen Variablen habe ich geändert, danke für den Hinweis.

    ~EDIT 2~
    Da man ja die Ebene angeben soll muss ich aus

    [autoit]

    $oDocref.ArtLayers(1).TextItem.Contents = GUICtrlRead($sVortext) & $i & GUICtrlRead($sNachtext)

    [/autoit][autoit]

    $oDocref.ArtLayers(GUICtrlRead($iTextebene)).TextItem.Contents = GUICtrlRead($sVortext) & $i & GUICtrlRead($sNachtext)

    [/autoit]


    machen, jedoch erscheint dann folgender Fehler:

    Code
    err.description is: 	No such element
    err.source is: 	Adobe Photoshop
    err.helpfile is: 	
    err.helpcontext is: 	0
    err.lastdllerror is: 	0
    err.scriptline is: 	104
    err.retcode is: 	-2147352565

    Zudem erhalte ich wenn ich aus

    [autoit]

    $oJpgSaveOptions.Quality = $iQualitaet

    [/autoit][autoit]

    $oJpgSaveOptions.Quality = GUICtrlRead($iQualitaet)

    [/autoit]


    mache diesen Fehler:

    Code
    err.description is: 	Numeric value expected
    err.source is: 	Adobe Photoshop
    err.helpfile is: 	
    err.helpcontext is: 	0
    err.lastdllerror is: 	0
    err.scriptline is: 	100
    err.retcode is: 	-2147220280

    Obwohl er ja den Wert, sprich eine Zahl erhält. In dem Fall 7.

    3 Mal editiert, zuletzt von Kazuto (2. April 2013 um 19:06)

  • GuiCtrlRead liefert immer einen String zurück. Es muss daher lauten:

    [autoit]

    $oJpgSaveOptions.Quality = Number(GUICtrlRead($iQualitaet))

    [/autoit]
  • Vielen Dank water, für deinen Tipp.

    ~EDIT~
    water, darf ich dich küssen?
    Dank dir funktioniert das Tool nun endlich <3

    Vielen, vielen Dank ^^

    Einmal editiert, zuletzt von Kazuto (3. April 2013 um 14:36)

  • Leider bist Du männlich und nicht ganz meine Altersklasse. Und außerdem viel zu weit weg ;)

  • :D xD

    Mir ist gerade aufgefallen dass der Script mit der 64bit Version von Photoshop funktioniert, mit der 32bit Version jedoch nicht.

    Woran könnte dies liegen? Ich denke mal nicht am Code ansich, da die .vbs auch mit beiden Bit Versionen funktioniert.

    Wisst ihr woran das liegen könnte?

  • Kompilierst Du das Skript dann auch für 32 Bit?

  • Ja.

    [Blockierte Grafik: http://puu.sh/2t6kg]

    ~EDIT~
    Irgendwie tritt das Problem nun auch bei der 64bit Version von Photoshop auf.

    Der Text wird wie immer geändert jedoch wird das Bild nicht automatisch gespeichert sondern bleibt im "Speichern als..." stehen.
    Eben funktionierte der 64bit Script mit der 64bit Version von Photoshop.

    Einmal editiert, zuletzt von Kazuto (3. April 2013 um 16:10)