Löschen einer .dll bei Scriptende funktioniert nicht...

  • Hallo,
    ich hab da ein kleines Problem mit dem Löschen einer "champions_big.dll"...

    Die dll wird anscheinend nicht ordnungsgemäß von Windows freigegeben, weil das Script noch darauf zugreift, nur kann ich den Fehler nicht finden. Ich vermute allerdings, dass der Fehler entweder in der von mir kopierten UDF "_SetImagefromResource()" liegt oder zu dem Aufruf der UDF noch ein 2. Aufruf zum schliessen gehört, der mir nicht bekannt ist...

    Hier mal die meiner Meinung nach wichtigen Stellen aus dem Quellcode:
    Klick Mich
    und hier noch der komplette Code am Stück
    Klick Mich

    Und wo ich schon dabei bin... Wenn jemand mir dabei helfen kann, den Code etwas einfacher zu machen, würds mich auch freuen ;)
    Ab und an denke ich einfach zu kompliziert :P

    Würd mich jedenfalls freuen, wenn sich eine Lösung finden lässt.

    Anhang: Auf Anfrage hier noch die verwendeten dll-links
    champions-big.dll
    champions-small.dll

    [Blockierte Grafik: http://img804.imageshack.us/img804/9353/unbenanntgv.jpg]

    Uploaded with ImageShack.us

    4 Mal editiert, zuletzt von darius83 (30. Dezember 2011 um 16:36) aus folgendem Grund: img eingefügt

  • Hmm nein das hat leider beides nicht geholfen. Das Script hängt weiterhin in der Löschschleife fest und wenn ich dann versuche, die Datei manuell zu löschen, sagt Windows, die Datei ist noch von meiner Test.exe geöffnet. Wenn ich dann das Script manuell schliesse, lässt sich die dll problemlos löschen.

  • In der _SetImageFromResource Funktion fehlt ein bisschen.
    Vor dieser Zeile

    [autoit]

    If $Resfile <> -1 Then DllCall("Kernel32.dll", "int", "FreeLibrary", "str", $hmod)

    [/autoit]

    kommt

    [autoit]

    DllCall("kernel32.dll", "int", "UnLockResource", "int", $Mem)

    [/autoit]

    Und am Ende der Funktion:

    [autoit]

    $hmod = _WinAPI_FreeLibrary($Resfile)

    [/autoit]

    Alles nur geraten und ungetestet

  • Hab die Ergänzung mal vorgenommen und die GUI funktioniert auch weiterhin so wie vorher... Vlt. nur stilistischer Fehler?
    Naja jedenfalls hat es an der Problematik nix geändert...
    Hängt immer noch in der Schleife fest.
    Hier mal der aktuelle Quelltext mit Änderungen: Klick mich

    Soo ersten Beitrag editiert, Links für die dlls eingefügt

    Einmal editiert, zuletzt von darius83 (29. Dezember 2011 um 22:03)

  • Hi,

    habe mal kleine Änderung vorgenommen, hoffe es funktioniert jetzt bei dir:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <SliderConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiImageList.au3>
    #include <GuiListView.au3>
    #include <GDIPlus.au3>
    #include <WinAPI.au3>
    #include <Memory.au3>
    #include <Constants.au3>
    global $test=0 ; ###############################################################################
    DirCreate( @TempDir & "\LoL" )
    FileInstall ( ".\championdaten.ini", @TempDir & "\LoL\championdaten.ini", 1 )
    FileInstall ( ".\champions_big.dll", @TempDir & "\LoL\champions_big.dll", 1 )
    FileInstall ( ".\champions_small.dll", @TempDir & "\LoL\champions_small.dll", 1 )
    FileInstall ( ".\logo.jpg", @TempDir & "\LoL\logo.jpg", 1 )
    FileSetAttrib( @TempDir & "\LoL\champions_small.dll", "-RASHNOT" )

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

    ;@WorkingDir
    Global Const $RT_RCDATA = 10
    Global Const $RT_BITMAP = 2
    Global $Grundschaden, $LevelSchaden, $Grundleben, $LevelLeben, $Grundmana, $LevelMana, $Lauftempo, $Grundruestung, $LevelRuestung
    Global $Grundzauberabwehr, $LevelZauberabwehr, $GrundHPRegeneration, $LevelHPRegeneration, $GrundMPRegeneration, $LevelMPRegeneration
    Global $Charlistchange = False, $SelectedChar = "Leer"

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

    Opt("GUIOnEventMode", 1)

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

    #Region ### START Koda GUI section ### Form=d:\eigene dateien\downloads\lol\guis\lolitemplaner.kxf
    $Background = GUICreate("LoL Item Planner", 801, 601, 185, 113)
    $ChampGross = GUICtrlCreatePic(@TempDir & "\LoL\logo.jpg", 8, 8, 260, 390)
    $ListView1 = GUICtrlCreateListView("", 272, 8, 162, 390, BitOR($LVS_REPORT,$LVS_NOCOLUMNHEADER,$LVS_SINGLESEL,$LVS_SHOWSELALWAYS,$WS_VSCROLL));$GUI_SS_DEFAULT_LISTVIEW
    GUICtrlSetFont($ListView1, 10, 400, 0, "Arial")
    GUICtrlSetColor($ListView1, 0x000000)
    $LabelBesLevel = GUICtrlCreateLabel("Beschwörer-Level", 510, 12, 300, 17)
    $Beslvl = GUICtrlCreateInput("1", 450, 8, 50, 21)
    GUICtrlSetOnEvent($Beslvl, "BeslvlChange")
    $BeslvlUD = GUICtrlCreateUpdown($Beslvl)
    GUICtrlSetLimit($BeslvlUD, 30, 1)
    GUICtrlSetOnEvent($BeslvlUD, "BeslvlUDChange")
    $LabelLevel = GUICtrlCreateLabel("Level", 510, 34, 300, 17)
    $Lvl = GUICtrlCreateInput("1", 450, 30, 50, 21)
    GUICtrlSetOnEvent($Lvl, "LvlChange")
    $LvlUD = GUICtrlCreateUpdown($Lvl)
    GUICtrlSetLimit($LvlUD, 18, 1)
    GUICtrlSetOnEvent($LvlUD, "LvlUDChange")
    $LabelItems = GUICtrlCreateLabel("Items", 510, 56, 300, 17)
    $LabelSchaden = GUICtrlCreateLabel("Schaden: " & ($Grundschaden + $LevelSchaden), 10, 400, 300, 17)
    $LabelLeben = GUICtrlCreateLabel("Leben: " & ($Grundleben + $LevelLeben), 10, 420, 300, 17)
    $LabelMana = GUICtrlCreateLabel("Mana: " & ($Grundmana + $LevelMana), 10, 440, 300, 17)
    $LabelLauftempo = GUICtrlCreateLabel("Lauftempo: " & ($Lauftempo), 10, 460, 300, 17)
    $LabelRuestung = GUICtrlCreateLabel("Rüstung: " & ($Grundruestung + $LevelRuestung), 10, 480, 300, 17)
    $LabelZauberabwehr = GUICtrlCreateLabel("Zauberabwehr: " & ($Grundzauberabwehr + $LevelZauberabwehr), 10, 500, 300, 17)
    $LabelLebensregeneration = GUICtrlCreateLabel("Lebensregeneration: " & ($GrundHPRegeneration + $LevelHPRegeneration), 10, 520, 300, 17)
    $LabelManaregeneration = GUICtrlCreateLabel("Manaregeneration: " & ($GrundMPRegeneration + $LevelMPRegeneration), 10, 540, 300, 17)

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

    #EndRegion ### END Koda GUI section ###

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

    ; Load images
    $hImage = _GUIImageList_Create()
    _GUIImageList_SetIconSize($hImage, 16, 16)
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 110-1);
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 1-1); Annie
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 2-1); Olaf
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 3-1); Galio
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 4-1); Twisted Fate
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 5-1); Xin Zhao
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 6-1); Urgot
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 7-1); LeBlanc
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 8-1); Vladimir
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 9-1); Fiddlesticks
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 10-1); Kayle
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 11-1); Master Yi
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 12-1); Alistar
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 13-1); Ryze
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 14-1); Sion
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 15-1); Sivir
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 16-1); Soraka
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 17-1); Teemo
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 18-1); Tristana
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 19-1); Warwick
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 20-1); Nunu
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 21-1); Miss Fortune
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 22-1); Ashe
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 23-1); Tryndamere
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 24-1); Jax
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 25-1); Morgana
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 26-1); Zilean
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 27-1); Singed
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 28-1); Evelynn
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 29-1); Twitch
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 30-1); Karthus
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 31-1); Cho'Gath
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 32-1); Amumu
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 33-1); Rammus
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 34-1); Anivia
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 35-1); Shaco
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 36-1); Dr. Mundo
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 37-1); Sona
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 38-1); Kassadin
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 39-1); Irelia
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 40-1); Janna
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 41-1); Gangplank
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 42-1); Corki
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 43-1); Karma
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 44-1); Taric
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 45-1); Veigar
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 46-1);
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 47-1);
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 48-1); Trundle
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 49-1);
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 50-1); Swain
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 51-1); Caitlyn
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 52-1);
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 53-1); Blitzcrank
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 54-1); Malphite
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 55-1); Katarina
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 56-1); Nocturne
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 57-1); Maokai
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 58-1); Renekton
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 59-1); Jarvan IV
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 60-1);
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 61-1); Orianna
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 62-1); Wukong
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 63-1); Brand
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 64-1); Lee Sin
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 65-1);
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 66-1);
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 67-1); Vayne
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 68-1); Rumble
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 69-1); Cassiopeia
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 70-1);
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 71-1);
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 72-1); Skarner
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 73-1);
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 74-1); Heimerdinger
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 75-1); Nasus
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 76-1); Nidalee
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 77-1); Udyr
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 78-1); Poppy
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 79-1); Gragas
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 80-1); Pantheon
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 81-1); Ezreal
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 82-1); Mordekaiser
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 83-1); Yorick
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 84-1); Akali
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 85-1); Kennen
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 86-1); Garen
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 87-1);
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 88-1);
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 89-1); Leona
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 90-1); Malzahar
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 91-1); Talon
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 92-1); Riven
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 93-1);
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 94-1);
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 95-1);
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 96-1); Kog'Maw
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 97-1);
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 98-1); Shen
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 99-1); Lux
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 100-1);
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 101-1); Xerath
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 102-1); Shyvana
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 103-1); Ahri
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 104-1); Graves
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 105-1); Fizz
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 106-1); Volibear
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 107-1);
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 108-1);
    _GUIImageList_AddIcon($hImage, @TempDir & "\LoL\champions_small.dll", 109-1);
    _GUICtrlListView_SetImageList($ListView1, $hImage, 1)

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

    ; Add columns
    _GUICtrlListView_AddColumn($ListView1, "Champions", 141)

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

    ; Add items
    _GUICtrlListView_AddItem($ListView1, "Ahri", 103)
    _GUICtrlListView_AddItem($ListView1, "Akali", 84)
    _GUICtrlListView_AddItem($ListView1, "Alistar", 12)
    _GUICtrlListView_AddItem($ListView1, "Amumu", 32)
    _GUICtrlListView_AddItem($ListView1, "Anivia", 34)
    _GUICtrlListView_AddItem($ListView1, "Annie", 1)
    _GUICtrlListView_AddItem($ListView1, "Ashe", 22)
    _GUICtrlListView_AddItem($ListView1, "Blitzcrank", 53)
    _GUICtrlListView_AddItem($ListView1, "Brand", 63)
    _GUICtrlListView_AddItem($ListView1, "Caitlyn", 51)
    _GUICtrlListView_AddItem($ListView1, "Cassiopeia", 69)
    _GUICtrlListView_AddItem($ListView1, "Cho'Gath", 31)
    _GUICtrlListView_AddItem($ListView1, "Corki", 42)
    _GUICtrlListView_AddItem($ListView1, "Dr. Mundo", 36)
    _GUICtrlListView_AddItem($ListView1, "Evelynn", 28)
    _GUICtrlListView_AddItem($ListView1, "Ezreal", 81)
    _GUICtrlListView_AddItem($ListView1, "Fiddlesticks", 9)
    _GUICtrlListView_AddItem($ListView1, "Fizz", 105)
    _GUICtrlListView_AddItem($ListView1, "Galio", 3)
    _GUICtrlListView_AddItem($ListView1, "Gangplank", 41)
    _GUICtrlListView_AddItem($ListView1, "Garen", 86)
    _GUICtrlListView_AddItem($ListView1, "Gragas", 79)
    _GUICtrlListView_AddItem($ListView1, "Graves", 104)
    _GUICtrlListView_AddItem($ListView1, "Heimerdinger", 74)
    _GUICtrlListView_AddItem($ListView1, "Irelia", 39)
    _GUICtrlListView_AddItem($ListView1, "Janna", 40)
    _GUICtrlListView_AddItem($ListView1, "Jarvan IV", 59)
    _GUICtrlListView_AddItem($ListView1, "Jax", 24)
    _GUICtrlListView_AddItem($ListView1, "Karma", 43)
    _GUICtrlListView_AddItem($ListView1, "Karthus", 30)
    _GUICtrlListView_AddItem($ListView1, "Kassadin", 38)
    _GUICtrlListView_AddItem($ListView1, "Katarina", 55)
    _GUICtrlListView_AddItem($ListView1, "Kayle", 10)
    _GUICtrlListView_AddItem($ListView1, "Kennen", 85)
    _GUICtrlListView_AddItem($ListView1, "Kog'Maw", 96)
    _GUICtrlListView_AddItem($ListView1, "LeBlanc", 7)
    _GUICtrlListView_AddItem($ListView1, "Lee Sin", 64)
    _GUICtrlListView_AddItem($ListView1, "Leona", 89)
    _GUICtrlListView_AddItem($ListView1, "Lux", 99)
    _GUICtrlListView_AddItem($ListView1, "Malphite", 54)
    _GUICtrlListView_AddItem($ListView1, "Malzahar", 90)
    _GUICtrlListView_AddItem($ListView1, "Maokai", 57)
    _GUICtrlListView_AddItem($ListView1, "Master Yi", 11)
    _GUICtrlListView_AddItem($ListView1, "Miss Fortune", 21)
    _GUICtrlListView_AddItem($ListView1, "Mordekaiser", 82)
    _GUICtrlListView_AddItem($ListView1, "Morgana", 25)
    _GUICtrlListView_AddItem($ListView1, "Nasus", 75)
    _GUICtrlListView_AddItem($ListView1, "Nidalee", 76)
    _GUICtrlListView_AddItem($ListView1, "Nocturne", 56)
    _GUICtrlListView_AddItem($ListView1, "Nunu", 20)
    _GUICtrlListView_AddItem($ListView1, "Olaf", 2)
    _GUICtrlListView_AddItem($ListView1, "Orianna", 61)
    _GUICtrlListView_AddItem($ListView1, "Pantheon", 80)
    _GUICtrlListView_AddItem($ListView1, "Poppy", 78)
    _GUICtrlListView_AddItem($ListView1, "Rammus", 33)
    _GUICtrlListView_AddItem($ListView1, "Renekton", 58)
    _GUICtrlListView_AddItem($ListView1, "Riven", 92)
    _GUICtrlListView_AddItem($ListView1, "Rumble", 68)
    _GUICtrlListView_AddItem($ListView1, "Ryze", 13)
    _GUICtrlListView_AddItem($ListView1, "Shaco", 35)
    _GUICtrlListView_AddItem($ListView1, "Shen", 98)
    _GUICtrlListView_AddItem($ListView1, "Shyvana", 102)
    _GUICtrlListView_AddItem($ListView1, "Singed", 27)
    _GUICtrlListView_AddItem($ListView1, "Sion", 14)
    _GUICtrlListView_AddItem($ListView1, "Sivir", 15)
    _GUICtrlListView_AddItem($ListView1, "Skarner", 72)
    _GUICtrlListView_AddItem($ListView1, "Sona", 37)
    _GUICtrlListView_AddItem($ListView1, "Soraka", 16)
    _GUICtrlListView_AddItem($ListView1, "Swain", 50)
    _GUICtrlListView_AddItem($ListView1, "Talon", 91)
    _GUICtrlListView_AddItem($ListView1, "Taric", 44)
    _GUICtrlListView_AddItem($ListView1, "Teemo", 17)
    _GUICtrlListView_AddItem($ListView1, "Tristana", 18)
    _GUICtrlListView_AddItem($ListView1, "Trundle", 48)
    _GUICtrlListView_AddItem($ListView1, "Tryndamere", 23)
    _GUICtrlListView_AddItem($ListView1, "Twisted Fate", 4)
    _GUICtrlListView_AddItem($ListView1, "Twitch", 29)
    _GUICtrlListView_AddItem($ListView1, "Udyr", 77)
    _GUICtrlListView_AddItem($ListView1, "Urgot", 6)
    _GUICtrlListView_AddItem($ListView1, "Vayne", 67)
    _GUICtrlListView_AddItem($ListView1, "Veigar", 45)
    _GUICtrlListView_AddItem($ListView1, "Vladimir", 8)
    _GUICtrlListView_AddItem($ListView1, "Volibear", 106)
    _GUICtrlListView_AddItem($ListView1, "Warwick", 19)
    _GUICtrlListView_AddItem($ListView1, "Wukong", 62)
    _GUICtrlListView_AddItem($ListView1, "Xerath", 101)
    _GUICtrlListView_AddItem($ListView1, "Xin Zhao", 5)
    _GUICtrlListView_AddItem($ListView1, "Yorick", 83)
    _GUICtrlListView_AddItem($ListView1, "Zilean", 26)

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

    GUISetOnEvent($GUI_EVENT_CLOSE, "BackgroundClose")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "BackgroundMinimize")
    GUISetOnEvent($GUI_EVENT_MAXIMIZE, "BackgroundMaximize")
    GUISetOnEvent($GUI_EVENT_RESTORE, "BackgroundRestore")
    GUICtrlSetOnEvent($ChampGross, "ChampGrossClick")
    GUICtrlSetOnEvent($LabelLevel, "LabelLevelClick")
    GUICtrlSetOnEvent($ListView1, "ListView1Click")

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

    Chardatenupdate ("Leer")

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

    GUISetState(@SW_SHOW)

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

    While $test=0 ; ####################################################################################
    Sleep(100)
    CheckList()
    WEnd
    DllClose (@TempDir & "\LoL\champions_big.dll") ;############################## Anfang Code aus der oberen WHILE-Schleife
    Sleep(2000)
    Dim $delete = 0, $delete1 = 0, $delete2 = 0, $delete3 = 0, $delete4 = 0
    Do
    If $delete1 == 0 Then $delete1 = FileDelete ( @TempDir & "\LoL\champions_big.dll" )
    If $delete2 == 0 Then $delete2 = FileDelete ( @TempDir & "\LoL\champions_small.dll" )
    If $delete3 == 0 Then $delete3 = FileDelete ( @TempDir & "\LoL\championdaten.ini" )
    If $delete4 == 0 Then $delete4 = FileDelete ( @TempDir & "\LoL\logo.jpg" )
    If $delete1 And $delete2 And $delete3 And $delete4 Then $delete = 1
    Until $delete == 1

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

    DirRemove ( @TempDir & "\LoL", 1 )
    Exit ;############################################# Ende

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

    Func CheckList()
    $iIndex = _GUICtrlListView_GetSelectedIndices($ListView1, True)
    If $iIndex[0] <> 0 And _GUICtrlListView_GetItemText($ListView1, $iIndex[1]) <> $SelectedChar Then
    $Charlistchange = True
    $SelectedChar = _GUICtrlListView_GetItemText($ListView1, $iIndex[1])
    EndIf
    If $iIndex[0] <> 0 And $Charlistchange == True Then
    $sText=_GUICtrlListView_GetItemText($ListView1, $iIndex[1])
    _SetImagefromResource($ChampGross, StringUpper($sText), @TempDir & "\LoL\champions_big.dll", $RT_RCDATA)
    Chardatenupdate($sText)
    $Charlistchange = False
    EndIf
    EndFunc
    Func BackgroundClose()
    GUIDelete()
    $test=1

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

    EndFunc
    Func BackgroundMaximize()

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

    EndFunc
    Func BackgroundMinimize()

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

    EndFunc
    Func BackgroundRestore()

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

    EndFunc
    Func ChampGrossClick()

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

    EndFunc
    Func LabelLevelClick()

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

    EndFunc
    Func LevelSliderChange()

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

    EndFunc
    Func ListView1Click()

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

    EndFunc
    Func BeslvlUDChange()
    EndFunc
    Func BeslvlChange()
    EndFunc
    Func LvlUDChange()
    LvlChange()
    EndFunc
    Func LvlChange()
    $LevelSchaden1 = GUICtrlRead($Lvl)*$LevelSchaden
    GUICtrlSetData ($LabelSchaden, "Schaden: " & ($Grundschaden + $LevelSchaden1))
    $LevelLeben1 = GUICtrlRead($Lvl)*$LevelLeben
    GUICtrlSetData ($LabelLeben, "Leben: " & ($Grundleben + $LevelLeben1))
    $LevelMana1 = GUICtrlRead($Lvl)*$LevelMana
    GUICtrlSetData($LabelMana, "Mana: " & ($Grundmana + $LevelMana1))
    GUICtrlSetData($LabelLauftempo, "Lauftempo: " & ($Lauftempo))
    $LevelRuestung1 = GUICtrlRead($Lvl)*$LevelRuestung
    GUICtrlSetData($LabelRuestung, "Rüstung: " & ($Grundruestung + $LevelRuestung1))
    $LevelZauberabwehr1 = GUICtrlRead($Lvl)*$LevelZauberabwehr
    GUICtrlSetData($LabelZauberabwehr, "Zauberabwehr: " & ($Grundzauberabwehr + $LevelZauberabwehr1))
    $LevelHPRegeneration1 = GUICtrlRead($Lvl)*$LevelHPRegeneration
    GUICtrlSetData($LabelLebensregeneration, "Lebensregeneration: " & ($GrundHPRegeneration + $LevelHPRegeneration1))
    $LevelMPRegeneration1 = GUICtrlRead($Lvl)*$LevelMPRegeneration
    GUICtrlSetData($LabelManaregeneration, "Manaregeneration: " & ($GrundMPRegeneration + $LevelMPRegeneration1))
    EndFunc

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

    Func Chardatenupdate($Champname)
    $Grundschaden = IniRead (@TempDir & "\LoL\Championdaten.ini", $Champname, "Schaden", 0)
    $LevelSchaden = IniRead (@TempDir & "\LoL\Championdaten.ini", $Champname, "Schadenbonus", 0)
    $Grundleben = IniRead (@TempDir & "\LoL\Championdaten.ini", $Champname, "Leben", 0)
    $LevelLeben = IniRead (@TempDir & "\LoL\Championdaten.ini", $Champname, "Lebenbonus", 0)
    $Grundmana = IniRead (@TempDir & "\LoL\Championdaten.ini", $Champname, "Mana", 0)
    $LevelMana = IniRead (@TempDir & "\LoL\Championdaten.ini", $Champname, "Manabonus", 0)
    $Lauftempo = IniRead (@TempDir & "\LoL\Championdaten.ini", $Champname, "Lauftempo", 0)
    $Grundruestung = IniRead (@TempDir & "\LoL\Championdaten.ini", $Champname, "Ruestung", 0)
    $LevelRuestung = IniRead (@TempDir & "\LoL\Championdaten.ini", $Champname, "Ruestungbonus", 0)
    $Grundzauberabwehr = IniRead (@TempDir & "\LoL\Championdaten.ini", $Champname, "Zauberabwehr", 0)
    $LevelZauberabwehr = IniRead (@TempDir & "\LoL\Championdaten.ini", $Champname, "Zauberabwehrbonus", 0)
    $GrundHPRegeneration = IniRead (@TempDir & "\LoL\Championdaten.ini", $Champname, "Lebensreg", 0)
    $LevelHPRegeneration = IniRead (@TempDir & "\LoL\Championdaten.ini", $Champname, "Lebensregbonus", 0)
    $GrundMPRegeneration = IniRead (@TempDir & "\LoL\Championdaten.ini", $Champname, "Manareg", 0)
    $LevelMPRegeneration = IniRead (@TempDir & "\LoL\Championdaten.ini", $Champname, "Manaregbonus", 0)
    LvlChange()
    EndFunc

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

    Func _SetImagefromResource($CtrlID, $Resname, $Resfile = -1, $ResType = 10)
    ;Diese Funktion basiert auf der UDF von [email='Zedna@Autitscript.com'][/email] und Code von [email='Progandy@AutoIt.de'][/email]
    Local Const $IMAGE_BITMAP = 0
    Local Const $STM_SETIMAGE = 0x0172
    Local $hmod, $hwnd, $InfoBlock, $ResSize, $Mem, $pMem, $dll, $dll2, $hData, $pData, $pStream, $ret, $hBitmap, $pBitmap
    If $Resfile = -1 Then
    $hmod = _WinAPI_GetModuleHandle("")
    Else
    $hmod = _WinAPI_LoadLibrary($Resfile)
    EndIf
    If $ResType = $RT_BITMAP Then
    $hBitmap = _WinAPI_LoadImage($hmod, $Resname, $IMAGE_BITMAP, 0, 0, 0)
    If @error Then Return SetError(1, 0, 0)
    $hwnd = GUICtrlGetHandle($CtrlID)
    If $hwnd = 0 Then Return SetError(2, 0, 0)
    DllCall("user32.dll", "hwnd", "SendMessage", "hwnd", $hwnd, "int", $STM_SETIMAGE, "int", $IMAGE_BITMAP, "int", $hBitmap)
    If @error Then Return SetError(3, 0, 0)
    Else
    $InfoBlock = DllCall("kernel32.dll", "int", "FindResourceA", "int", $hmod, "str", $Resname, "long", $ResType)
    If @error Then Return SetError(4, 0, 0)
    $InfoBlock = $InfoBlock[0]
    If $InfoBlock = 0 Then Return SetError(5, 0, 0)
    $ResSize = DllCall("kernel32.dll", "dword", "SizeofResource", "int", $hmod, "int", $InfoBlock)
    If @error Then Return SetError(6, 0, 0)
    $ResSize = $ResSize[0]
    If $ResSize = 0 Then Return SetError(7, 0, 0)
    $Mem = DllCall("kernel32.dll", "int", "LoadResource", "int", $hmod, "int", $InfoBlock)
    If @error Then Return SetError(8, 0, 0)
    $Mem = $Mem[0]
    If $Mem = 0 Then Return SetError(9, 0, 0)
    $pMem = DllCall("kernel32.dll", "int", "LockResource", "int", $Mem)
    If @error Then Return SetError(8, 0, 0)
    $pMem = $pMem[0]
    If $pMem = 0 Then Return SetError(10, 0, 0)
    DllCall("kernel32.dll", "int", "UnLockResource", "int", $Mem); ergänzt
    If $Resfile <> -1 Then DllCall("Kernel32.dll", "int", "FreeLibrary", "str", $hmod)
    $hData = _MemGlobalAlloc($ResSize, 2)
    $pData = _MemGlobalLock($hData)
    _MemMoveMemory($pMem, $pData, $ResSize)
    _MemGlobalUnlock($hData)
    $ret = DllCall("ole32.dll", "int", "CreateStreamOnHGlobal", "int", $hData, "long", 1, "Int*", 0)
    $pStream = $ret[3]
    _GDIPlus_Startup()
    $pBitmap = DllCall($ghGDIPDll, "int", "GdipCreateBitmapFromStream", "ptr", $pStream, "int*", 0)
    $pBitmap = $pBitmap[2]
    $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($pBitmap)
    $hwnd = GUICtrlGetHandle($CtrlID)
    If $hwnd = 0 Then Return SetError(11, 0, 0)
    DllCall("user32.dll", "hwnd", "SendMessage", "hwnd", $hwnd, "int", $STM_SETIMAGE, "int", $IMAGE_BITMAP, "int", $hBitmap)
    If @error Then Return SetError(12, 0, 0)
    _GDIPlus_BitmapDispose($pBitmap)
    _GDIPlus_Shutdown()
    $dll = DllStructCreate("Uint", $pStream)
    $dll2 = DllStructCreate("uInt", DllStructGetData($dll, 1) + 8)
    DllCall("", "UInt", DllStructGetData($dll2, 1), "UInt", $pStream)
    _WinAPI_DeleteObject($pStream)
    $pStream = 0
    _MemGlobalFree($hData)
    $hmod = _WinAPI_FreeLibrary($Resfile); ergänzt
    EndIf
    EndFunc ;==>_SetImagefromResource

    [/autoit]
  • Jap Progandy hat mit Bot nix zu tun :) Das Tool soll einem halt wenns fertig ist dabei helfen, die richtigen Items für einen bestimmten Champ zu finden um seinen Schaden zu maximieren. Es beeinflusst das Spiel in keiner Weise.

    Aber wo du schonmal reinschaust, kannste dir deinen Code ja evtl nochmal anschaun, denn ich vermute, dass mein Problem mit deinem Code zusammenhängt...