AutoItWrapper produziert Fehler: LastError:110:

  • Hallo,

    ich habe seit einiger Zeit einen Fehler, wenn ich meine AutoIt Scripte kompilieren möchte:

    Error: EndUpdateResource: Returncode = 0 - LastError:110:Das System kann das angegebene Gerät oder die angegebene Datei nicht öffnen.


    Hier der Auszug aus der Log:

    AutoIt
    +>22:55:16 AU3Check ended.rc:0
    >Running:(3.3.14.2):S:\Programmierung\AutoIt\Programme\AutoIt3\aut2exe\aut2exe_x64.exe /in "S:\Programmierung\Scripte\_am Entwickeln\SymLinks.au3" /out "C:\Users\Marco\AppData\Local\AutoIt v3\Aut2exe\~AU61A4.tmp.exe" /nopack /icon "..\..\..\..\AutoIt\Programme\AutoIt3\Aut2Exe\Icons\AutoIt_Main_v10_256x256_RGB-A.ico" /comp 4 /Console
    +>22:55:17 Aut2exe.exe ended.C:\Users\Marco\AppData\Local\AutoIt v3\Aut2exe\~AU61A4.tmp.exe. rc:0
    >22:55:17 Performing the Program Resource Update steps:
    ! Invalid FileVersion value 3=05. It will be changed to:5
    ...>Updating Program Version information.
    !>22:55:17 Error: EndUpdateResource: Returncode = 0 - LastError:110:Das System kann das angegebene Gerät oder die angegebene Datei nicht öffnen.rc:2
    !>22:55:17 Error: Program Resource updating Failed. The output program will not contain the Resource updates!rc:2
    +>22:55:18 AutoIt3Wrapper Finished.
    >Exit code: 0 Time: 3.798

    Die kompilierte Datei unter: C:\Users\Marco\AppData\Local\AutoIt v3\Aut2exe\~.....exe ist immer erstellt worden.
    In dem Ordner liegen schon etliche Dateien rum. Auch ein Aufräumen dort hilft nicht.

    In dem Moment des Fehlers, liegt eine ~CoE8DB.tmp im selber Ordner (C:\Users\Marco\AppData\Local\AutoIt v3\Aut2exe\). Diese ist 0Kb groß und verschwindet sofort nachdem ich den Fehler von AutoItWrapper bestätige wieder.


    Ich habe schon mit google einige Threats gefunden, jedoch brachte bei mir bisher nichts.
    Ich habe meinen Virenscanner + Verhaltenskontrolle komplett deaktiviert, gleicher Fehler.
    Ich habe ein Update aller AutoIt und SciTe Komponenten gemacht, brachte leider auch kein Erfolg :(

    Vielleicht habt ihr ja eine Idee?

  • Bevor du kompilierst schließe mal deinen Windows Explorer.
    Wenn das nicht hilft wähle, wenn du CTRL+F7 drückst(also Kompilieren), dort mal im Tab "Resource Update" bei "Execution Level" "requireAdministrator" aus.

    ~IRC: irc.afterworkchat.de #autoit

  • Danke für deine Hilfe.

    Leider habe ich genau das schon alles versucht.
    Alle Explorer Fenster geschlossen, Execution Levels geändert, über KontextMenü kompiliert...

    Mein PC:
    Windows 7x64 mit aktuellem PatchLevel
    GData InternetSecurity mit aktuellem PatchLevel

  • Fragen wir einmal anderesherum. Seit wann funktioniert es denn nichtmehr?
    Was hast du zu dem Zeitpunkt gemacht nachdem das Kompilieren nichtmehr richtig funktionierte ?

    Edit: Öffne mal das Fenster "AutoIt3Wrapper GUI to Compile AutoIt3 Script"(In SCITE - CTRL+F7) -> "Resource Update" -> Aus den Feldern: Comment; Description; FIle Version; Legal Copyright und Extra resource Fields alles raus löschen.
    Beil "File Version" noch auf "Dont Auto Increment" stellen. Bei "Execution Level" auf Default. Und dann nocheinmal kompilieren.

    Edit2: Achja. Bei mir liegen im Verzeichnis "...\AppData\Local\AutoIt v3\Aut2exe\" auch zich *.tmp Dateien mit 0 KB rum.

    ~IRC: irc.afterworkchat.de #autoit

    4 Mal editiert, zuletzt von Photon (11. Mai 2016 um 16:32)

  • Seit wann es nicht mehr funktioniert ist eine gute Frage. Habe schon länger an dem PC keine mehr kompiliert.
    Auf meinem anderen "alten" Rechner (ein andere AntiVirus Software) läuft der gleiche SourceCode.
    Jetzt habe ich meinen "alten" Rechner entsorgt und nutze nur noch den neuen und nun habe ich dieses blöde Problem.

    Interessant war an dem Test...
    Nachdem ich alle ResourceUpdate Sachen kommentiert habe, lief der erste Compile ohne Fehler durch. Dann der zweite/dritte/vierte/ Compile den genauen selben Error: LastError:110
    Alle ResourceUpdate Sachen wieder aktiv geschaltet, lief der erste Compile ohne Fehler durch. Dann der zweite/dritte/vierte/ Compile den genauen selben Error: LastError:110


    Das finde ich nun mal sehr merkwürdig... Merkt sich die AntiViren-SW vielleicht ein hash vom compile.tmp-file und blockiert die dann irgendwie systemseitig? Ein deaktivieren des Virenscanner bringt ja keine Besserung.
    Merkwürdig das alles.


    Ich will gleich nochmal den Hinweis im englischen Forum testen:
    exclude C:\Users\user\AppData\Local\AutoIt v3\Aut2Exe\ in AntiViren-SW
    EDIT: Auch mit diesem Eintrag habe ich das Problem!

  • Man kann also sagen das nach jeder Änerung im "Resource Update"-Tab ein Kompilieren möglich ist.

    Nachdem ich alle ResourceUpdate Sachen kommentiert habe

    Sprich du hast die ganzen Resourceupdate Sachen im Script stehen?


    Hmmm ich glaube wenn es an der Anti-Viren Software liegen würde dann müsste sie ja theoretisch jeden Kompiliervorgang verhindern. Andernfalls wäre sie ja ziemlich nutzlos. :/

    Änder es nochmal so das du einen erfolgreichen Kompilierungsprozess hinbekommst und kompilere einmal.
    Dann kompiliere noch einmal. Fehlgeschlagen richtig?
    Dann änder in deinem Script mal eine Variable oder füge irgendetwas hinzu so das dein Script geändert wurde. Und kompiliere nochmal.

    ~IRC: irc.afterworkchat.de #autoit

    Einmal editiert, zuletzt von Photon (11. Mai 2016 um 17:12)

  • Ja, genau:

    und dann einmal:


    Den von dir beschriebenen Test werde ich gleich machen.


    Was bedeutet dieses hier:
    ! Invalid FileVersion value 3=05. It will be changed to:5

  • Was bedeutet dieses hier:
    ! Invalid FileVersion value 3=05. It will be changed to:5

    Ich vermute stark das es einfach damit zusammenhängt das aut2exe nur eine FileVersion im Format X.X.X.X also z.B. 20.0.0.1 oder 0.2.3.1 akzeptiert.

    Hmm der mag den Werte im Format 0X wohl nicht. Macht auch nicht wirklich Sinn.^^
    Interessanterweise steht in FileVersion in der GUI nachdem ich z.B. 2.3 eingeben hab wenn ich die GUI erneut öffne nach dem Kompilieren immer die FileVersion im Format 2.3.X.X drin.

    ~IRC: irc.afterworkchat.de #autoit

    Einmal editiert, zuletzt von Photon (11. Mai 2016 um 18:29)

  • OKAY,

    ich habe folgendes auskommentierte komplett aus der Datei entfernt:

    AutoIt
    ;~ #AutoIt3Wrapper_Icon=..\..\..\..\AutoIt\Programme\AutoIt3\Aut2Exe\Icons\AutoIt_Main_v10_256x256_RGB-A.ico
    ;~ #AutoIt3Wrapper_Res_Comment=Marco
    ;~ #AutoIt3Wrapper_Res_Description=Marco
    ;~ #AutoIt3Wrapper_Res_Fileversion=0.16.05.8
    ;~ #AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
    ;~ #AutoIt3Wrapper_Res_LegalCopyright=Marco
    ;~ #AutoIt3Wrapper_Res_Language=1031
    ;~ #AutoIt3Wrapper_Res_Field=AutoIt Version|%AutoItVer%
    ;~ #AutoIt3Wrapper_Res_Field=Compile Date|%date% %time%


    Sobald dies nicht mehr in der Datei vorhanden ist, läuft das Script stabil durch den compiler.

    Aber ich möchte diese Sachen gerne nutzen :)

    Was bedeutet dieses hier:

    AutoIt
    ! Invalid FileVersion value 3=05. It will be changed to:5

    Korrekt, ich hatte bei mir in der Version "05" stehen. Habe es in "5" geändert


    Photon:
    Ich habe deinen Test gemacht.
    MIT auskommentierten Block hat es genau dein Verhalten. Jedes mal wenn ich eine Variable hinzufüge funktioniert es. Nur der zweite UNVERÄNDERTE compile schlägt fehl.

    Jedoch wenn ich den Block ein kommentiere, schlägt nun jedes mal fehl. Naja, jedes 10 mal ca. läuft durch. Virenscanner komplett deaktiviert.

  • Irgendwer verstellt mir auch meine codierung:
    Man beachte die Umlaute:

    AutoIt
    !>18:34:41 Error: EndUpdateResource: Returncode = 0 - LastError:110:Das System kann das angegebene Gerät oder die angegebene Datei nicht öffnen.rc:2


    AutoitWrapper verstellt bei mir auch die Versionsnummer zurück nach 05 auch wenn in der gespeicherten Version nur 5 steht. Somit ist beim zweiten compile dann auch die 05 wieder da und die Zeichensatzcodierung ist verstellt.
    Liegt hier mein Problem, dass mit der Zeichencodierung etwas nicht stimmt, bzw. verstellt wird?


    EDIT:
    Ich habe den AutoItWrapper bei mir auf dem Rechner kompiliert.
    in näge Zeile 2530 hinzugefügt:

    AutoIt
    hinzugefügt: Write_RC_Console_Msg("sleeping 2000ms for FileChecks", "", "...", 0)
    hinzugefügt: Sleep(2000)
    ORIGINAL: Local $result = DllCall("kernel32.dll", "int", "EndUpdateResourceW", "ptr", $rh, "int", 0)


    NUN funktionieren auch wieder die Wrapper directiven!


    Einiziges Problem:
    Irgendwas verstellt mir die Zeichencodierung im der Logausgabe:

  • SciTEGlobal.properties:

    Code
    # Internationalisation
    #NewFileEncoding=CodePage/UTF8BOM/UTF8/UTF16BE/UTF16LE         # Only available in SciTE4AutoIt3 version
    #~ Enhance function of auto checking utf8: providing two methods
    #~ utf8.auto.check=1 #  detect utf8 and add BOM automatically   Credits to SciTE-RU
    #~ utf8.auto.check=2 # detect utf8 and do not add BOM
    #~ utf8.auto.check=3 # detect ascii high characters and if none found set default encoding to UTF8 and add BOM
    #~#~#~#~#~#~ utf8.auto.check=4    # detect ascii high characters and if none found set default encoding to UTF8 and do not add BOM

    diese Zeile ist normalerweise AKTIV:
    #~#~#~#~#~#~ utf8.auto.check=4 # detect ascii high characters and if none found set default encoding to UTF8 and do not add BOM

    Was soll diese machen?
    Diese verändert meinen Zeichensatz, daher habe ich diesen mal auskommentiert in der SciTEGlobal.properties.
    Ohne diese "Funktion" bleibt ein öäü ein öäü und nicht äö oder was das auch immer darstellen soll fürs menschliche Auge.


    @Photon & Lottich:
    Vielen Dank für eure Hilfe bisher!

  • Hmmm. Komische Sache.
    Ich glaube BugFix oder Andy ist in Sachen ScITE ziemlich fit.
    Vll. meldet sich einer der beiden mal zu Wort. :)

    Edit:
    Hast du vll. mal versucht mit der portablen Version von AutoIt ein Script zu kompilieren?

    ~IRC: irc.afterworkchat.de #autoit

    Einmal editiert, zuletzt von Photon (11. Mai 2016 um 20:46)

  • @Wrapper GData Problem:
    Ich habe mit Jos geschrieben, er ist der "Entwickler" vom Wrapper.
    Wir haben nun eine Beta mit einem kleinen Sleep an der richtigen Stelle... :)


    The Process name is: AVKWCtlx64.exe and called G Data Filesystem Monitor Service. This process is the last process with access to the TMP-File (check with ProcMon from SysInternals) when the Error Promp pop up.
    I have no idea, where I can configure this process. I have add the exclusion path, I have disable all components I can configure in the G Data Internet Security GUI. Really all components, AntiVirus-, Heuristik-, Firewall-, Web-, Mail-, Spam-, BankGiard-, Keylogger-, Exploit-, Malware-, Phishing-, USB-Protection. This process is running, running, running and blocking for a really short time...


    Zu der SciTE AutoIt Sache (utf8.auto.check), hoffe ich mal auf ein paar Tips in die richtige Richtung :)

  • GDATA kann das Problem bei sich in der Entwicklung reproduzieren und behebt der Fehler in der nächsten Programmversion.

    Es sollte dann möglich sein, den AutoIt-Ordner in die "Ausnahmeliste" hinzuzufügen, sodass der FileMonitor-Service diesen dann berücksichtigt.