Problem mit JavaScript in AutoIT

  • Moin moin Leute,
    ich bräucht mal wieder eine kleine Hilfe von euch.

    Und zwar:
    Ich möchte via JavaScript ein Label ausdrucken lassen auf einem Dymo Drucker.
    Auf diesem Label steht die MAC-Adresse von einem Gerät was ich einscanne und noch 2-3 Sachen mehr, welche über ein GUI eingegeben werden können.

    Das Label usw läuft alles, nur das drucken lassen ist das Problem.
    (HBLabel.exe hatte ich schon probiert, führt aber zu Problemen, falls jemand das noch vorschlagen möchte ;) )

    Hier mal der Ausschnitt vom Code, welcher relevant ist.

    "Der Code & Die Ausgabe"
    [autoit]


    #region JavaScript
    $s_Print_Label_Javascript = _
    "function labelprint()" & @CRLF & _
    "{" & @CRLF & _
    " try" & @CRLF & _
    " {" & @CRLF & _
    " var labelXml = new XMLHttpRequest();" & @CRLF & _
    " labelXml.open('GET', './asdqwe.label');" & @CRLF & _
    " labelXml.onreadystatechange = function() {" & @CRLF & _
    " alert(labelXml.responseText);" & @CRLF & _
    " }" & @CRLF & _
    " labelXml.send();" & @CRLF & _
    " var label = dymo.label.framework.openLabelXml(labelXml.responseText);" & @CRLF & _
    " " & @CRLF & _
    " // set label text" & @CRLF & _
    " //label.setObjectText(' Text', textTextArea.value);" & @CRLF & _
    " " & @CRLF & _
    " // select printer to print on" & @CRLF & _
    " // for simplicity sake just use the first LabelWriter printer" & @CRLF & _
    " var printers = dymo.label.framework.getPrinters();" & @CRLF & _
    " if (printers.length == 0)" & @CRLF & _
    " throw ' No DYMO printers are installed. Install DYMO printers.';" & @CRLF & _
    " " & @CRLF & _
    " var printerName = '';" & @CRLF & _
    " for (var i = 0; i < printers.length; ++i)" & @CRLF & _
    " {" & @CRLF & _
    " var printer = printers[i];" & @CRLF & _
    " if (printer.printerType == ' LabelWriterPrinter')" & @CRLF & _
    " {" & @CRLF & _
    " printerName = printer.name;" & @CRLF & _
    " break;" & @CRLF & _
    " }" & @CRLF & _
    " }" & @CRLF & _
    " " & @CRLF & _
    " if (printerName == '')" & @CRLF & _
    " throw ' No LabelWriter printers found. Install LabelWriter printer';" & @CRLF & _
    " " & @CRLF & _
    " // finally print the label" & @CRLF & _
    " label.print(printerName);" & @CRLF & _
    " }" & @CRLF & _
    " catch(e)" & @CRLF & _
    " {" & @CRLF & _
    " alert(e.message || e);" & @CRLF & _
    " };" & @CRLF & _
    "};"
    #endregion JavaScript

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

    _LabelLog("_PrintLabel()", "Print the Label", False)
    $h_Print_Label_ScrCon = ObjCreate("ScriptControl")
    $h_Print_Label_ScrCon.language = "JScript" ; auch mit "JavaScript" getestet
    $h_Print_Label_ScrCon.addcode($s_Print_Label_Javascript)
    $h_Print_Label_ScrCon.run("labelprint")

    [/autoit]

    Ausgabe:

    [autoit]


    - 10:45:07 OK _PrintLabel() Print the Label
    D:\autoit\a_Fertig\GeNiEnd2End_Label_Tool\label.au3 (568) : ==> The requested action with this object has failed.:
    $h_Print_Label_ScrCon.run("labelprint")
    $h_Print_Label_ScrCon.run("labelprint")^ ERROR
    ->10:45:07 AutoIT3.exe ended.rc:1

    [/autoit]

    Hät da einer einen Plan, wo der Fehler ist?
    Es soll funktionieren, wie in diesem Thread geschrieben wurd.

    AutoIT: Aktuell
    W7x64 SP1
    Script x86 erzwungen

    Danke schonmal für eure Zeit.
    Mfg

    Einmal editiert, zuletzt von lachi (4. März 2013 um 13:41)