Fehler nur auf einem Betriebsystem ...

  • Hallo zusammen,

    nun dachte ich, ich hätte das Problem mit dem Abmelden auf dem Server mit dem Befehl: run(@SystemDir & "\logoff.exe") gelöst, da wirds ganz komisch.

    Die kompilierte Version des Autoitscripts läuft auf dem Server (Win 2008R2 64Bit) nicht und schmeisst den Fehler:
    Error: Array variable has incorrect number of subscripts or subscript dimension range exceeded

    Lokal kann ich das Script auf Win 8.1 64Bit kompiliert laufen lassen.

    UND auf BEIDEN Systemen funktioniert das Script, wenn ich es über F5 in der IDE starte (ISN Autoit Studio).

    Das ganze Script liegt als ZIP im Thread : Pseudo Desktop - Konstruktive Kritik ;)

    Auf besonderen Wunsch nachträglich ein Link auf den Thread :)

    Was ist denn da los?

    Grüße,
    klaros

    Einmal editiert, zuletzt von klaros (9. Dezember 2014 um 20:37)

  • evtl mit RunAs ?
    Sehe mal in die Hilfe und auch die dort unter RunAS aufgelistete verwandte Funktionen.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • evtl mit RunAs ?
    Sehe mal in die Hilfe und auch die dort unter RunAS aufgelistete verwandte Funktionen.

    Hm ...
    Ich habe das Script in anderer Fassung kompiliert auf dem Server starten können.
    Deswegen kann ich nicht glauben, dass es etwas mit Benutzrrechten zu tun haben wird ...
    Der Fehler soll sich ja auf ein falsch definiertes / gefülltes Array beziehen; da werde ich mal weitersuchen oder / und experimentieren. :)

    Ergänzung zum Fehlerbild:
    Der Desktop mit den vier Farbkacheln wird noch gezeichnet.
    Danach würden die Icons angelegt werden - da kommt dann aber die oben genannte Fehlermeldung ...


    Grüße,
    klaros

    Einmal editiert, zuletzt von klaros (9. Dezember 2014 um 20:06)

  • Beim überfliegen deines Quellcodes (Achja wie wäre es wenn du den anderen Thread hier verlinken würdest? Dann braucht man nicht erst selbst danach suchen...), hier mal eine potentielle Fehlerquelle beim Ansprechen eines Arrays...

    In deinem include "_VSDesktopIcons.au3":

    Zeile 64ff

    [autoit]


    If ($ProgName <> "leer") Then ;==> Hilfskonstrukt - muss in der INI angeben sein, falls eine Section / Kachel keine Icons enthält
    $aSplittedString = StringSplit($aSectionInfo[$j][1],"|") ;==> String aufteilen, Trennzeichen "|"
    If @error = 1 Then
    MsgBox(48,'Fehler','Fehler in der INI-Datei: Trennzeichen nicht korrekt!',0)
    Exit
    EndIf
    $aProgName[$ProgNr] = $ProgName ;== Programmname - wird vielleicht noch gebraucht (ToolTip ...)
    $aProgPath[$ProgNr] = $aSplittedString[1] ;==> Programmpfad
    $aClassName[$ProgNr] = $aSplittedString[3] ;==> ClassenName des Programmes
    Local $IconPicInfo = $aSplittedString[2] ;==> Icon / Bild (Pfad)

    [/autoit]

    Du prüfst hier zwar ob es einen grundsätzlichen Fehler beim stringsplit gab, aber nicht ob die erwartete Ergebnismenge auch wirklich vorhanden ist. Wird der String nur in zwei statt in drei Teile zerlegt wird dein Script beim Ansprechen des dritten Array Indexes abstürzen.

    Mehr Problemstellen sind mir auf Anhieb jetzt nicht aufgefallen, du scheinst durchgehend recht gründlich auf Fehler zu prüfen.

  • Erstens habe ich "oben" den Link zum Thread eingefügt und hier jetzt auch noch mal: Link zum Thread ;)

    Und zweitens bist du gut. Saugut! :thumbup:
    Ich Döspaddel hatte nach meinem Umbau des Scriptes auf Class-Bezeichnungen die Ini-Datei auf dem Server nicht erneuert.
    Deswegen lief die kompilierte Version auf dem lokalen Arbeitsrechner und in den IDEs, weil dort die richtige INI "gezogen" wurde.
    AUA! :cursing:

    Damit ist genau der von dir beschriebene Fehlerzustand (bei Stringsplit ins Array schreiben) eingetreten.
    Wird sofort abgefangen!!! :)

    Grüße,
    klaros