Fehler in zeile 2348 von 66 ?!

  • hii, ich bin wieder richtig super drauf... ich habe mir so ein kleines FlashgameCenter geschrieben... hatte erst funktioniert, dann hatte ich was geändert. das ging nicht, und seit dem rückgängigmachen habe ich einen Fehler in zeile 2348. das coole: das hat nur 66 Zeilen ^^ ich denke, das es irgendwas mit den includes ist :(

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>
    ProgressOn("Game Center","Bitte warten")
    if FileExists("C:\fgames\gold.swf") = 0 Then InetGet("http://web1.playit2.ibone.ch/flashgamesz/V43xR5DJCuPVkAffBzYe2AuHLxxbT6.swf","C:\fgames\gold.swf",1)
    ProgressSet(17)
    if FileExists("C:\fsgames\bubble.swf") = 0 Then InetGet("http://web1.playit2.ibone.ch/flashgamesz/eaA33bfp9xW8gW6StcUSTtm7WWaq4K.swf","C:\fgames\bubble.swf",1)
    ProgressSet(34)
    if FileExists("C:\fgames\pacman.swf") = 0 Then InetGet("http://playit.ch/flashgamesz/pacman1/pacman1.swf","C:\fgames\pacman.swf",1)
    ProgressSet(51)
    if FileExists("C:\fgames\fire.swf") = 0 Then InetGet("http://web1.playit2.ibone.ch/flashgamesz/2Lm5BC3shSKFCpwUaW5gfEZuKyKmYb.swf","C:\fgames\fire.swf",1)
    ProgressSet(68)
    if FileExists("C:\fgames\deal.swf") = 0 Then InetGet("http://web1.playit2.ibone.ch/flashgamesz/fzvTdAm8nJdqAqLkgx8gHvnpWTMy7V.swf","C:\fgames\deal.swf",1)
    ProgressSet(85)
    if FileExists("C:\fgames\othello.swf") = 0 Then InetGet("http://web1.playit2.ibone.ch/flashgamesz/nxEhewFfx3T9uWX5ushvqzAYY89vPd.swf","C:\fgames\othello.swf",1)
    ProgressSet(100)
    ProgressOff()

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

    $oIE = _IECreateEmbedded ()
    _IEErrorHandlerRegister ()

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

    $GUIActiveX = GUICtrlCreateObj($oIE, 10, 40, 600, 360)

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

    GUICreate("Gaming Center",688,500)
    $gold = GUICtrlCreateButton("Gold Miner",10,10,103,30)
    $bubble = GUICtrlCreateButton("Bubble Shooter",123,10,103,30)
    $pacman = GUICtrlCreateButton("Pacman",236,10,103,30)
    $fire = GUICtrlCreateButton("Playin with Fire 2",349,10,103,30)
    $deal = GUICtrlCreateButton("Deal or No Deal",462,10,103,30)
    $othello = GUICtrlCreateButton("Othello",575,10,103,30)
    $gamefenster = GUICtrlCreateObj($oIE, 10, 60, 668, 440)

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

    $oSubmit = _IEGetObjByName ($oIE, "submitExample")
    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()

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

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    If $msg = $gold And MsgBox(36,"Gold Miner","Gold Miner Spielen?") = 6 Then
    _IENavigate ($oIE, "C:\fgames\gold.swf")

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

    EndIf
    If $msg = $bubble And MsgBox(36,"Bubble Shooter","bubble Shooter Spielen?") = 6 Then
    _IENavigate ($oIE, "C:\fgames\bubble.swf")

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

    EndIf
    If $msg = $pacman And MsgBox(36,"Pacman","Pacman Spielen?") = 6 Then
    _IENavigate ($oIE, "C:\fgames\pacman.swf")

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

    EndIf
    If $msg = $fire And MsgBox(36,"Playing with Fire 2","Playing with Fire 2 Spielen?") = 6 Then
    _IENavigate ($oIE, "C:\fgames\fire.swf")

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

    EndIf
    If $msg = $deal And MsgBox(36,"Deal or No Deal","Deal or No Deal Spielen?") = 6 Then
    _IENavigate ($oIE, "C:\fgames\deal.swf")

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

    EndIf
    If $msg = $othello And MsgBox(36,"Othello","Othello Spielen?") = 6 Then
    _IENavigate ($oIE, "C:\fgames\othello.swf")

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

    EndIf

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

    WEnd

    [/autoit]
  • es steht doch da

    Zitat

    C:\Programme\AutoIt3\Include\IE.au3 (2348) : ==> Object referenced outside a "With" statement.:
    If IsObj($o_object.document.GetElementsByName($s_Id).item($i_index)) Then
    If IsObj($o_object.document.GetElementsByName($s_Id)^ ERROR

    Also taucht der Fehler in der ie.au3 auf

    Und dort gehört die Zeile zu
    _IEGetObjByName

    Die Ursache darfst du nun selber suchen :D

  • Das Problem habe ich gerade auch: Wie finde ich denn ganz allgemein bei Runtime-Fehlern über die angegebene Zeilennummer die zugehörige Zeile im Editor, wenn die Zuordnung durch Include-Statements und Remarks nicht mehr direkt möglich ist? Gibt's da irgendein Tool?

  • Das Problem habe ich gerade auch: Wie finde ich denn ganz allgemein bei Runtime-Fehlern über die angegebene Zeilennummer die zugehörige Zeile im Editor, wenn die Zuordnung durch Include-Statements und Remarks nicht mehr direkt möglich ist? Gibt's da irgendein Tool?


    Ja, einfach einen Doppel-Klick auf die Zeile in der Ausgabekonsole ...


    Gruß
    Greenhorn


  • Ok, aber das geht natürlich nur, wenn der Fehler beim Aufruf aus der Entwicklungsumgebung heraus passiert. Aber was mache ich, wenn ein compiliertes Skript einen Runtime-Fehler meldet? Dann habe ich wirklich nur die Zeilennumer.

  • einfach alle verwendeten includes hintereinander hängen und die zeilenzahl suchen

    vor dem ausführen des scripts werden ja die include dateien angehängt

    script:

    include
    exit


    wenn in test.au3 steht:

    msgbox(0,"Test","Test1msgbox")
    msgbox(0,"Test","Test2msgbox")


    dann wird das script beim compilieren bzw ausführen zu

    msgbox(0,"Test","Test1msgbox")
    msgbox(0,"Test","Test2msgbox")
    exit

    demnach ist exit zeile 3

  • Funktionierts bei dir wenn du in einer includeten kopie der IE.au3 (verwendet stattdessen)
    die Zeilen 2348 bis 2354 auskommentierst?
    Ist nur n versuch.
    Bei mir geht es dann allerdings kann sie Seite nicht geladen werden.
    Das kann allerdings daran leigen das ich die Internet zugriffsrechte eingeschränkt habe.


    mfg Ubuntu

  • Hallo Scripter 192:

    Das ist bei kurzen Skripts ohne Remarks kein Problem. Bei der ausgegebenen Fehlerzeilennummer werden aber offenbar Remarks und Leerzeilen nicht mitgezählt. Und wenn nun diese Include-Dateien selbst wieder Include-Statements enthalten, womöglich auch noch bedingte von Typ #include-once, dann ist das ziemlich hoffnungslos. Ich hatte z. B. eben einen Runtime-Fehler in einer der angebotenen „User Defined Functions“.

    Hallo Ubuntu:

    Deinen Beitrag verstehe ich nicht.

    Grüße von Wolfgang

  • Und ich verstehe nicht was du nicht verstehst :P

    Ich bitte den threadsteller es auf beschiebene art und weise einfach einmal zu versuchen.
    Sollte es klappen ist es zwar keine schöne Lösung aber eine Lösung ;)

    mfg Ubuntu

  • Hallo Ubuntu,

    Ich nehme also mein Skript, das einen Runtime-Fehler erzeugt aber nicht mal Warnings beim Compilieren:

    Code
    test()
    exit
    #Include <ScreenCapture.au3>
    Func test()
    	_ScreenCapture_Capture(@ScriptDir&"\test.png")
    EndFunc

    lade manuell IE.au3 davor, kommentiere aus wie empfohlen, compiliere, starte die EXE-Datei durch Doppelklick im Exlorer und erhalte die Fehlermeldung

    Line 5609 (File C:\...\„DingsBums.exe“):
    Error: Variable used without being declared.

    Und wie finde ich jetzt das zugehörige fehlerauslösende Statement? Oder hattest Du eine andere Meldung erwartet?