Array Fehlermeldung

  • Servus alle zusammen,

    kann mir einer mal bitte folgendes erklären wo liegt der Unterschied ob ich ein Autoit Programm als Admin mit Mausklick starte oder mit rechter Maustaste "als anderer benutzer ausführen" starte .Alle benutzer haben Admin Rechte. nur bei dem Interaktieven kommt folgenden Meldung.


    Hat dazu einer eine Idee.

    Gruss

    Mc Baldrian

    Solange
    du den anderen sein Anderssein nicht verzeihen kannst, bist du noch weit ab vom
    Wege der Weisheit.

  • Diese meldung kommt wenn man auf einen nicht definierten Array index zugreifen will z.B.

    [autoit]

    Local $aBeispiel[2][2]
    $aBeispiel[1][1] = "kein Error"
    $aBeispiel[1][2] = "Error"; kann nicht ausgeführt werden fehlermeldung

    [/autoit]

    das es jedoch nur bei ausführung unter anderen nutzern zu dem fehler kommt kann eigentlich nur daran liegen das du etwas mit dem array machst was nutzerabhängig ist aber ohne Script oder/und einer genauen erklärung was das Script macht kann man da nicht viel sagen...

  • Servus ,


    leider macht das Skript keinen Unterschied zwischen Benutzer Konten das heißt
    es macht immer dasselbe nichts nutzerabhängig abhängiges.


    Das Script kann ich leider nicht hochladen.

    Was macht mein Script.


    Eine TXT Datei einlesen und nach vordefinierten werten in der TXT Datei suchen
    und dann die TXT Datei aufsplittern in mehrere Dateien.

    Dann diese Datei einem anderem Programm vor die Füße schmeißen und verarbeiten.

    Es ist noch eine Überwachung und Fehlerausgabe mit eingebaut.


    Im Großen und Ganzen war’s das.


    Gruß


    Mc Baldrian

    Solange
    du den anderen sein Anderssein nicht verzeihen kannst, bist du noch weit ab vom
    Wege der Weisheit.

  • Ich halte es für möglich, dass der Benutzer keine ausreichenden Berechtigungen hat um die Datei zu lesen. Der eigentliche Fehler liegt aber an mangelhaftem Errorhandling in deinem Code, denn sonst könnte es garnicht zum Absturz kommen, sondern dein Programm würde stattdessen eine detailierte Ausgabe machen was an welcher Stelle nicht geklappt hat und entweder angemessen reagieren, den Anwender fragen oder eben das Programm sauber beenden.

    Um den Fehler zu finden bleibt dir nichts anderes übrig als nach jedem Funktionsaufruf die Rückgabewerte und sofern vorhanden Errorcodes auszuwerten. Details was eine Funktion im Fehlerfall zurückgibt werden im jeweiligen Hilfeeintrag beschrieben.

    Kurzes Beispiel wie das ausschaun könnte bzw.immer sollte:

    [autoit]


    #include <File.au3>
    $filepath = "C:\test.txt"
    dim $adata
    $debug = _filereadtoarray($filepath,$aData)
    if $debug = 0 then
    msgbox(0,"Fehler beim Datei einlesen","Errorcode: " & @error)
    exit ; pech hat nicht geklappt, also abbrechen
    else ; alles ok
    if ubound($adata) >= 3 then
    consolewrite($adata[2] & @crlf) ; alles ok, irgendwas mit Zeile 2 machen
    else ; pech Zeile 2 gibts garnicht
    msgbox(0,"Fehler","Die Textdatei enthält weniger als 2 Zeilen, daher abbruch")
    exit
    endif
    endif

    [/autoit]

    Einmal editiert, zuletzt von misterspeed (22. November 2013 um 19:38)