GUI Fenster schliest

  • hallo :),
    ich hatte vor Autoit zu lernen.
    nun hab ich mich ein bisschen damit beschäftigt und wenn ich ein kleines script mit einem GUI schreibe dann schließt sich das Fenster direkt nach dem öffnen wieder
    wenn mir jemand helfen könnte warum sich das fenster sofort schließt wäre ich sehr dankbar
    ich hoffe auf eine antwort :D
    lg

  • hi,
    also zu deinem "GUI-Problem":

    [autoit]

    GUISetState(@SW_SHOW); Macht die GUI sichtbar (hattest du offenbahr schon)

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

    While 1 ;eine schleife (die DERZEIT nur auf den Schließen-Befehl mit Exit (=Beenden) reagiert) muss gesetzt werden damit die GUI angezeigt wird
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]


    PS: ein simples sleep(5000) würde die GUI 5 Sekunden anzeigen, würde aber keine reaktion auf den Schließen-Befehl , ist manchmal ganz hilfreich um die GUI anzugucken.. Sonst kann ich dir nur den KODA empfehlen mit dem man ziemlich schnell GUI's zaubern kann (Autoitverzeichnis\Scite\Koda\FD.exe)

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • hey danke :)
    funktioniert jetzt wunderbar, danke dir :thumbup:

    2 Mal editiert, zuletzt von Julsco (19. Juli 2009 um 20:46)

  • aber naja jetzt funktionieren die ganzen funktionen nicht mehr sprich ich klick auf einen button und es passiert nicht wo sich eigentlich ein neues fenster öffnen müsste
    weißt du oder wer anders wodran das liegen könnte? ?(

  • Hallo und herzlich Willkommen !

    Hier mal ein Beispiel für eine GUI:

    [autoit]


    #include <GUIConstants.au3>

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

    #region - GUI Create
    GUICreate('Julscos GUI')
    $Button = GUICtrlCreateButton("Beenden", 10, 10, 75, 22)
    GUISetState()
    #endregion

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

    #region - GUI SelectLoop
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE Or $msg = $Button
    Exit
    ;Case $msg =
    ;Case $msg =
    ;Case $msg =
    ;Case $msg =
    EndSelect
    WEnd
    #endregion

    [/autoit]


    Vielleicht kannst Du Dein Script zeigen ? :thumbup:
    Edit: Ich habe Dir noch einen Button eingebaut. ;)

  • so hier mal mein code vom script ;)

    Spoiler anzeigen
    [autoit]

    #Region

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

    #AutoIt3Wrapper_icon=Icons\Script.ico
    #EndRegion
    Opt("GuiOnEventMode",1)
    Opt("TrayMenuMode",1)
    Opt("TrayOnEventMode",1)

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

    #include
    ;~ General Declarations

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

    Global $title = "Julscos Autoit Scipt ", $ar_setting[50][2]
    Global $cmb_skill = "1|2|3|4|5|6|7|8", $cmb_key = "1|2|3|4|5|6|7|8|9"
    Global $sel_pntr
    Global $dbluse

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

    ;~ Lvl

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

    Global $coll_arwin[4], $coll_winpid[4]
    Global $coll_key[4], $coll_selwin[4], $coll_start[4], $coll_stop[4], $coll_wintitle[4]

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

    ;~ Window Settings

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

    Global $winopt_arlist[1][2], $winopt_int, $winopt_aref = 0, $winopt_clist[1][2], $winopt_ctime[1][4], $winopt_ctoken = 0, $winopt_cinit[1]

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

    #Region Gui Initialize

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

    $main = GUICreate($title,448,463,@DesktopWidth / 2 - 250,@DesktopHeight / 2 - 250)

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

    $tray = TrayCreateItem("Exit")

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

    GUICtrlCreateTab(0,0,450,465)

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

    #Region Lvl
    GUICtrlCreateTabItem("Lvl Bot")

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

    For $i = 0 To 3
    GUICtrlCreateLabel("Select F-Key For Attack",20,50 + ($i * 110),160,13)
    $coll_wintitle[$i] = GUICtrlCreateLabel("No Window Selected",220,95 + ($i * 110),110,30)

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

    $coll_key[$i] = GUICtrlCreateCombo("F-Key",35,70 + ($i * 110), 80,25,0x3)
    $coll_selwin[$i] = GUICtrlCreateButton("Select Window",220,70 + ($i * 110),85,20)
    $coll_start[$i] = GUICtrlCreateButton("Start",350,50 + ($i * 110),70,20)
    $coll_stop[$i] = GUICtrlCreateButton("Stop",350,85 + ($i * 110), 70,20)

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

    GUICtrlSetData($coll_key[$i],$cmb_key)
    GUICtrlSetState($coll_stop[$i],128)
    Next

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

    #EndRegion

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

    #Region Window Settings
    GUICtrlCreateTabItem(" Window Settings")
    GUICtrlCreateGroup("Settings",10,23,430,430)

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

    $winopt_list = GUICtrlCreateList("",40,90,170,150)
    $winopt_refresh = GUICtrlCreateButton("Refresh",260,110,70,20)
    $winopt_rename = GUICtrlCreateButton("Rename",340,110,70,20)
    $winopt_hide = GUICtrlCreateButton("Hide",260,145,70,20)
    $winopt_show = GUICtrlCreateButton("Show",340,145,70,20)
    $winopt_kill = GUICtrlCreateButton("Kill",260,180,70,20)
    $winopt_jump = GUICtrlCreateButton("Jump To",340,180,70,20)
    $winopt_closetime = GUICtrlCreateButton("Close On Time",295,215,80,20)
    $winopt_ctlist = GUICtrlCreateList("",40,270,170,150)
    GUICtrlCreateLabel("Next Window To Close:",230,280,130,20)
    $winopt_cwindis = GUICtrlCreateLabel("",230,300,130,20)
    GUICtrlCreateLabel("Time Left:",230,340,50,20)
    $winopt_cwintimer = GUICtrlCreateLabel("00:00:00",310,340,70,20)
    $winopt_ctstop = GUICtrlCreateButton("Remove",260,390,70,20)

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

    GUICtrlSetOnEvent($winopt_refresh,"_WinOptRefresh")
    GUICtrlSetOnEvent($winopt_rename,"_Rename")
    GUICtrlSetOnEvent($winopt_hide,"_Hide")
    GUICtrlSetOnEvent($winopt_show,"_Show")
    GUICtrlSetOnEvent($winopt_kill,"_Kill")
    GUICtrlSetOnEvent($winopt_jump,"_JumpTo")
    GUICtrlSetOnEvent($winopt_closetime,"_WinOptCTime")

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

    #EndRegion

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

    GUISetState(@SW_SHOW,$main)
    Global $gui_pid = WinGetProcess($main)

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

    #EndRegion

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

    #Region Function Include
    #include "Include\writeini.au3"
    #include "Include\lvl.au3"
    #include "Include\window.au3"
    #include "Include\regular.au3"

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

    #EndRegion Function Include

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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


    sollte ich dann auch die 4 scripte posten die included werden?

  • Hi,
    Du hast den GuiOnEventMode eingeschaltet und zusammen mit MessageloopMode, aber nur eines ist möglich.
    (Funktionen fehlen)

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #Region

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

    #AutoIt3Wrapper_Icon=Icons\Script.ico
    #EndRegion
    Opt("GuiOnEventMode", 1);###################################################################################################
    Opt("TrayMenuMode", 1)
    Opt("TrayOnEventMode", 1)

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

    Global $title = "Julscos Autoit Scipt ", $ar_setting[50][2]
    Global $cmb_skill = "1|2|3|4|5|6|7|8", $cmb_key = "1|2|3|4|5|6|7|8|9"
    Global $sel_pntr
    Global $dbluse

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

    ;~ Lvl

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

    Global $coll_arwin[4], $coll_winpid[4]
    Global $coll_key[4], $coll_selwin[4], $coll_start[4], $coll_stop[4], $coll_wintitle[4]

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

    ;~ Window Settings

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

    Global $winopt_arlist[1][2], $winopt_int, $winopt_aref = 0, $winopt_clist[1][2], $winopt_ctime[1][4], $winopt_ctoken = 0, $winopt_cinit[1]

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

    #Region Gui Initialize

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

    $main = GUICreate($title, 448, 463, @DesktopWidth / 2 - 250, @DesktopHeight / 2 - 250)

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

    $tray = TrayCreateItem("Exit")

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

    GUICtrlCreateTab(0, 0, 450, 465)

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

    #Region Lvl
    GUICtrlCreateTabItem("Lvl Bot")

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

    For $i = 0 To 3
    GUICtrlCreateLabel("Select F-Key For Attack", 20, 50 + ($i * 110), 160, 13)
    $coll_wintitle[$i] = GUICtrlCreateLabel("No Window Selected", 220, 95 + ($i * 110), 110, 30)

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

    $coll_key[$i] = GUICtrlCreateCombo("F-Key", 35, 70 + ($i * 110), 80, 25, 0x3)
    $coll_selwin[$i] = GUICtrlCreateButton("Select Window", 220, 70 + ($i * 110), 85, 20)
    $coll_start[$i] = GUICtrlCreateButton("Start", 350, 50 + ($i * 110), 70, 20)
    $coll_stop[$i] = GUICtrlCreateButton("Stop", 350, 85 + ($i * 110), 70, 20)

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

    GUICtrlSetData($coll_key[$i], $cmb_key)
    GUICtrlSetState($coll_stop[$i], 128)
    Next

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

    #EndRegion Lvl

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

    #Region Window Settings
    GUICtrlCreateTabItem(" Window Settings")
    GUICtrlCreateGroup("Settings", 10, 23, 430, 430)

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

    $winopt_list = GUICtrlCreateList("", 40, 90, 170, 150)
    $winopt_refresh = GUICtrlCreateButton("Refresh", 260, 110, 70, 20) ;#######################################################
    GUICtrlSetOnEvent(-1, "_WinOptRefresh");###################################################################################
    $winopt_rename = GUICtrlCreateButton("Rename", 340, 110, 70, 20)
    $winopt_hide = GUICtrlCreateButton("Hide", 260, 145, 70, 20)
    $winopt_show = GUICtrlCreateButton("Show", 340, 145, 70, 20)
    $winopt_kill = GUICtrlCreateButton("Kill", 260, 180, 70, 20)
    $winopt_jump = GUICtrlCreateButton("Jump To", 340, 180, 70, 20)
    $winopt_closetime = GUICtrlCreateButton("Close On Time", 295, 215, 80, 20)
    $winopt_ctlist = GUICtrlCreateList("", 40, 270, 170, 150)
    GUICtrlCreateLabel("Next Window To Close:", 230, 280, 130, 20)
    $winopt_cwindis = GUICtrlCreateLabel("", 230, 300, 130, 20)
    GUICtrlCreateLabel("Time Left:", 230, 340, 50, 20)
    $winopt_cwintimer = GUICtrlCreateLabel("00:00:00", 310, 340, 70, 20)
    $winopt_ctstop = GUICtrlCreateButton("Remove", 260, 390, 70, 20)

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

    GUICtrlSetOnEvent($winopt_rename, "_Rename")
    GUICtrlSetOnEvent($winopt_hide, "_Hide")
    GUICtrlSetOnEvent($winopt_show, "_Show")
    GUICtrlSetOnEvent($winopt_kill, "_Kill")
    GUICtrlSetOnEvent($winopt_jump, "_JumpTo")
    GUICtrlSetOnEvent($winopt_closetime, "_WinOptCTime")

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

    #EndRegion Window Settings

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

    GUISetState(@SW_SHOW, $main)
    Global $gui_pid = WinGetProcess($main)

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

    #EndRegion Gui Initialize

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

    While 1
    Sleep(100)
    ;$nMsg = GUIGetMsg();#################################################################################################
    ;Switch $nMsg
    ;Case $GUI_EVENT_CLOSE
    ;Exit
    ;EndSwitch
    WEnd

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

    Func _WinOptRefresh()
    MsgBox(0, "Test", "Nur zum Testen !" & @TAB);#########################################################################
    EndFunc

    [/autoit]


    Viel Erfolg ! :)

  • danke soweit :thumbup:
    aba nu hab ich nächstes problem :S ?( :(

    könntet ihr euch vllt noch die 4 include dateien angucken? :S
    und mir sagen was da die errors verursacht... ich blick da iwie grad nich mehr durch warum es diese fehlermeldungen gibt :D
    als erstes die writeini.au3

    Spoiler anzeigen
    [autoit]

    Func _IniSave()
    Dim $check, $key

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

    For $i = 0 To 3
    $read_inpt = GUICtrlRead($coll_key[$i])
    $val = IniRead("Settings.ini","Collect","key" & $i + 1,"x")

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

    If ($val = "default" And $read_inpt = "F-Key") Or $val = $read_inpt Then
    Else
    If $read_inpt = "F-Key" Or $val = "x" Then
    IniWrite("Settings.ini","Collect","key" & $i + 1,"default")
    Else
    IniWrite("Settings.ini","Collect","key" & $i + 1,$read_inpt)
    EndIf
    EndIf

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

    Next

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

    EndFunc

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

    Func _IniLoad()

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

    For $i = 0 To 3
    $val = IniRead("Settings.ini","Collect","key" & $i + 1,"x")
    If $val = "x" Then
    IniWrite("Settings.ini","Collect","key" & $i + 1,"default")
    Else
    If Number($val) >= 1 And Number($val) <= 9 Then
    GUICtrlSetData($coll_key[$i],"")
    GUICtrlSetData($coll_key[$i],"F-Key|" & $cmb_key,$val)
    EndIf
    EndIf

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

    Next

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

    EndFunc

    [/autoit]


    dann die window.au3

    Spoiler anzeigen
    [autoit]

    Func _Rename()
    $winopt_int = 1
    _WinOptEntry()
    EndFunc

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

    Func _Hide()
    $winopt_int = 2
    _WinOptEntry()
    EndFunc

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

    Func _Show()
    $winopt_int = 3
    _WinOptEntry()
    EndFunc

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

    Func _Kill()
    $winopt_int = 4
    _WinOptEntry()
    EndFunc

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

    Func _JumpTo()
    $winopt_int = 5
    _WinOptEntry()
    EndFunc

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

    Func _Remove()
    _WinOptCTRemove(_GUICtrlListBox_GetCurSel($winopt_ctlist))
    EndFunc

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

    Func _WinOptRefresh()

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

    Dim $winopt_arlist[1][2]
    $pntr = _GUICtrlListBox_GetCurSel($winopt_list)
    GUICtrlSetData($winopt_list,"")
    $prolist = ProcessList("Neuz.exe")
    $winlist = WinList()
    For $i = 1 To $winlist[0][0]
    If WinGetProcess($winlist[$i][0]) = 0 Then
    Local $int = UBound($winopt_arlist)
    $winopt_arlist[$int - 1][0] = $winlist[$i][0]
    $winopt_arlist[$int - 1][1] = $winlist[$i][1]
    ReDim $winopt_arlist[$int + 1][2]
    GUICtrlSetData($winopt_list,$winlist[$i][0] & " -- " & $winlist[$i][1])
    EndIf
    For $a = 1 To $prolist[0][0]
    If WinGetProcess($winlist[$i][0]) = $prolist[$a][1] Then
    Local $int = UBound($winopt_arlist)
    $winopt_arlist[$int - 1][0] = $winlist[$i][0]
    $winopt_arlist[$int - 1][1] = $winlist[$i][1]
    ReDim $winopt_arlist[$int + 1][2]
    GUICtrlSetData($winopt_list,$winlist[$i][0] & " -- " & $winlist[$i][1])
    EndIf

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

    Next

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

    Next
    _GUICtrlListBox_SetCurSel($winopt_list,$pntr)
    EndFunc

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

    Func _WinOptEntry()
    Local $winselect = GUICtrlRead($winopt_list)
    For $i = 0 To UBound($winopt_arlist) - 1
    If $winselect = ($winopt_arlist[$i][0] & " -- " & $winopt_arlist[$i][1]) Then
    If WinExists($winopt_arlist[$i][1]) Then
    Switch $winopt_int
    Case 1
    $nname = _InputBox("Change Window Name","Please enter the desired title",$winopt_arlist[$i][0],$main)
    If $nname = "" Then Return
    WinSetTitle($winopt_arlist[$i][1],"",$nname)
    Case 2
    WinSetState($winopt_arlist[$i][1],"",@SW_HIDE)
    Case 3
    WinSetState($winopt_arlist[$i][1],"",@SW_SHOW)
    Case 4
    WinKill($winopt_arlist[$i][1])
    Case 5
    WinActivate($winopt_arlist[$i][1])
    EndSwitch
    Sleep(1000)
    _WinOptRefresh()
    Return
    Else
    _MsgBox(0,$title,"The selected client doesn't exist anymore" & @CRLF & "You should refresh the list.",$main)
    Return
    EndIf
    EndIf
    Next

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

    EndFunc

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

    Func _WinOptCTime()
    Local $winselect = GUICtrlRead($winopt_list)
    For $i = 0 To UBound($winopt_arlist) - 1
    If $winselect = ($winopt_arlist[$i][0] & " -- " & $winopt_arlist[$i][1]) Then
    If WinExists($winopt_arlist[$i][1]) Then

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

    For $b = 0 To UBound($winopt_clist) - 1
    If $winopt_arlist[$b][1] = $winopt_clist[$b][1] Then
    _MsgBox(0,$title,"You already have a close order onto this window",$main)
    Return
    EndIf

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

    Next
    Local $int = UBound($winopt_clist)
    $time = _InputBox($title,"Time to elapse for closing the Flyff window "& @CRLF & $winopt_arlist[$i][0] & " -- " & $winopt_arlist[$i][1] & @CRLF & "(Hours:Minutes:Seconds)","00:00:00",$main,Default,330,Default)
    If $time = "" Then Return
    $time_split = StringSplit($time,":")

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

    If $time_split[0] <> 3 Then
    _MsgBox(0,$title,"Your input doesn't hit the required format",$main)
    Return
    EndIf

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

    $time_split[1] = Number($time_split[1])
    $time_split[2] = Number($time_split[2])
    $time_split[3] = Number($time_split[3])
    $time_elapse = (($time_split[1] * 3600) * 1000) + (($time_split[2] * 60) * 1000) + ($time_split[3] * 1000)

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

    If $time_elapse = 0 Then
    _MsgBox(0,$title,"You can't leave the timer at 0 seconds",$main)
    Return
    EndIf

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

    If $time_split[2] > 60 Or $time_split[3] > 60 Then
    _MsgBox(0,$title,"You have set a too high number for minutes or seconds",$main)
    Return
    EndIf

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

    $msg = _MsgBox(4,$title,"Is the time correct?" & @CRLF & @CRLF & $time_split[1] & ":" & $time_split[2] & ":" & $time_split[3],$main)
    If $msg = 7 Then Return

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

    $winopt_clist[$int - 1][0] = $winopt_arlist[$i][0]
    $winopt_clist[$int - 1][1] = $winopt_arlist[$i][1]

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

    $winopt_ctime[$int - 1][0] = $time_elapse
    $winopt_ctime[$int - 1][1] = $time_split[1]
    $winopt_ctime[$int - 1][2] = $time_split[2]
    $winopt_ctime[$int - 1][3] = $time_split[3]
    $winopt_cinit[$int - 1] = TimerInit()

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

    If $winopt_ctime[$winopt_ctoken][0] - TimerDiff($winopt_cinit[$winopt_ctoken]) > $winopt_ctime[$int - 1][0] Then
    $winopt_ctoken = $int - 1
    EndIf
    GUICtrlSetData($winopt_cwindis,$winopt_clist[$winopt_ctoken][0] & " -- " & $winopt_clist[$winopt_ctoken][1])
    GUICtrlSetData($winopt_ctlist,$winopt_clist[$winopt_ctoken][0] & " -- " & $winopt_clist[$winopt_ctoken][1] & " -- " & $winopt_ctime[$int - 1][1] & ":" & $winopt_ctime[$int - 1][2] & ":" & $winopt_ctime[$int - 1][3])
    GUICtrlSetData($winopt_cwintimer,StringFormat("i:i:i", $winopt_ctime[$winopt_ctoken][1],$winopt_ctime[$winopt_ctoken][2],$winopt_ctime[$winopt_ctoken][3]))
    ReDim $winopt_clist[UBound($winopt_clist) + 1][2]
    ReDim $winopt_ctime[UBound($winopt_clist) + 1][4]
    ReDim $winopt_cinit[UBound($winopt_clist) + 1]
    Return
    Else
    _MsgBox(0,$title,"The selected client doesn't exist anymore" & @CRLF & "You should refresh the list.",$main)
    Return
    EndIf
    EndIf
    Next

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

    EndFunc

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

    Func _WinOptCTRemove($entry)
    If $entry = -1 Then Return
    _GUICtrlListBox_DeleteString($winopt_ctlist,_GUICtrlListBox_FindString($winopt_ctlist,$winopt_clist[$entry][0] & " -- " & $winopt_clist[$entry][1]))
    _ArrayDelete($winopt_clist,$entry)
    _ArrayDelete($winopt_ctime,$entry)
    _ArrayDelete($winopt_cinit,$entry)
    For $i = 0 To UBound($winopt_clist) - 1
    $int = 0
    For $a = 0 To UBound($winopt_clist) - 1
    If $winopt_ctime[$i][0] - TimerDiff($winopt_cinit[$i]) < $winopt_ctime[$a][0] - TimerDiff($winopt_cinit[$a]) Then
    $int = $int + 0
    Else
    $int = $int + 1
    EndIf
    Next
    If $int = 0 Then
    $winopt_ctoken = $i
    EndIf
    Next
    GUICtrlSetData($winopt_cwindis,$winopt_clist[$winopt_ctoken][0] & " -- " & $winopt_clist[$winopt_ctoken][1])
    GUICtrlSetData($winopt_cwintimer,StringFormat("i:i:i", $winopt_ctime[$winopt_ctoken][1],$winopt_ctime[$winopt_ctoken][2],$winopt_ctime[$winopt_ctoken][3]))
    _WinOptRefresh()
    EndFunc

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


    dann noch die lvl.au3

    Spoiler anzeigen
    [autoit]

    ;~ First Group

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

    Func _CollPos1()
    $sel_pntr = 30
    _CollStart()
    EndFunc

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

    Func _SCollPos1()
    $sel_pntr = 30
    _CollStop()
    EndFunc

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

    Func _CollWin1()
    $sel_pntr = 30
    _SelWindow()
    EndFunc

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

    Func _CollStart()
    $sel_pntr = $sel_pntr - 30

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

    Select

    Case GUICtrlRead($coll_key[$sel_pntr]) = "F-Key"
    _MsgBox(0,$title,"Missing F-Key",$main)
    Return

    Case WinExists($win_client[3][$sel_pntr][1]) = 0
    _MsgBox(0,$title,"The selected window doesn't exist anymore",$main)
    Return

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

    Case $win_client[3][$sel_pntr][1] = ""
    _MsgBox(0,$title,"You need to select a window before",$main)
    Return
    Case FileExists(@ScriptDir & "\Subfiles\Collector.exe") = 0
    _MsgBox(0,$title,"Cannot find \Subfiles\Collector.exe" & @CRLF & "Reinstalling the software may solve this problem",$main)
    Return
    EndSelect

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

    For $i = 0 To 3
    If $coll_arwin[$i] = $win_client[3][$sel_pntr][1] Then
    _MsgBox(0,$title,"There's already running on this window",$main)
    Return
    EndIf
    Next

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

    GUICtrlSetState($coll_start[$sel_pntr],128)
    GUICtrlSetState($coll_stop[$sel_pntr],64)

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

    $coll_arwin[$sel_pntr] = $win_client[3][$sel_pntr][1]
    Local $params = $gui_pid & '" "' & GUICtrlRead($coll_key[$sel_pntr]) & '" "' & $coll_arwin[$sel_pntr]
    $coll_winpid[$sel_pntr] = Run(@ScriptDir & '\Subfiles\Collector.exe "' & $params & '"')

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

    EndFunc

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

    Func _CollStop()
    $sel_pntr = $sel_pntr - 30
    ProcessClose($coll_winpid[$sel_pntr])
    $coll_winpid[$sel_pntr] = ""
    $coll_arwin[$sel_pntr] = ""

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

    GUICtrlSetState($coll_start[$sel_pntr],64)
    GUICtrlSetState($coll_stop[$sel_pntr],128)

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

    EndFunc

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


    und zuletzt die regular.au3

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _SelWindow()
    GUISetState(@SW_DISABLE,$main)
    $win_gui = GUICreate("Select A Client",250,200,@DesktopWidth / 2 - 100,@DesktopHeight / 2 - 100)
    $win_list = GUICtrlCreateList("",10,10,150,180)
    $win_select = GUICtrlCreateButton("Select Client",170,30,70,20)
    $win_jump = GUICtrlCreateButton("Jump To",170,70,70,20)
    $win_refr = GUICtrlCreateButton("Refresh",170,110,70,20)
    $win_back = GUICtrlCreateButton("Back",170,150,70,20)
    GUISetOnEvent(-3,"_SelWinBack",$win_gui)
    GUICtrlSetOnEvent($win_back,"_SelWinBack")
    GUICtrlSetOnEvent($win_refr,"_SelWinRefresh")
    GUICtrlSetOnEvent($win_jump,"_SelWinJump")
    GUICtrlSetOnEvent($win_select,"_SelWinSelect")
    _SelWinRefresh()

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

    GUISetState(@SW_SHOW,$win_gui)

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

    EndFunc

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

    Func _SelWinRefresh()
    Dim $win_arlist[1][2]
    GUICtrlSetData($win_list,"")
    $prolist = ProcessList("Neuz.exe")
    $winlist = WinList()

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

    For $i = 1 To $winlist[0][0]
    If WinGetProcess($winlist[$i][0]) = 0 Then
    Local $int = UBound($win_arlist)
    $win_arlist[$int - 1][0] = $winlist[$i][0]
    $win_arlist[$int - 1][1] = $winlist[$i][1]
    ReDim $win_arlist[$int + 1][2]
    GUICtrlSetData($win_list,$winlist[$i][0] & " -- " & $winlist[$i][1])
    EndIf
    For $a = 1 To $prolist[0][0]
    If WinGetProcess($winlist[$i][0]) = $prolist[$a][1] Then
    Local $int = UBound($win_arlist)
    $win_arlist[$int - 1][0] = $winlist[$i][0]
    $win_arlist[$int - 1][1] = $winlist[$i][1]
    ReDim $win_arlist[$int + 1][2]
    GUICtrlSetData($win_list,$winlist[$i][0] & " -- " & $winlist[$i][1])
    EndIf

    Next

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

    Next

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

    EndFunc

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

    Func _SelWinBack()
    GUISetState(@SW_ENABLE,$main)
    GUISetState(@SW_RESTORE,$main)
    GUIDelete($win_gui)
    EndFunc

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

    Func _SelWinJump()
    Local $winselect = GUICtrlRead($win_list)
    For $i = 0 To UBound($win_arlist) - 1
    If $winselect = ($win_arlist[$i][0] & " -- " & $win_arlist[$i][1]) Then
    If WinExists($win_arlist[$i][1]) Then
    WinActivate($win_arlist[$i][1])
    Else
    _MsgBox(0,$title,"The selected client doesn't exist!" & @CRLF & "You should refresh the list.",$win_gui)
    EndIf
    EndIf
    Next
    EndFunc

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

    Func _SelWinSelect()
    If $sel_pntr >= 30 Then
    $sel_pntr = $sel_pntr - 30
    $win_opt = 3
    ElseIf $sel_pntr >= 20 Then
    $sel_pntr = $sel_pntr - 20
    $win_opt = 2
    ElseIf $sel_pntr >= 10 Then
    $sel_pntr = $sel_pntr - 10
    $win_opt = 1
    Else
    $win_opt = 0

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

    EndIf

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

    Local $winselect = GUICtrlRead($win_list)
    For $i = 0 To UBound($win_arlist) - 1
    If $winselect = ($win_arlist[$i][0] & " -- " & $win_arlist[$i][1]) Then
    If WinExists($win_arlist[$i][1]) Then
    $win_client[$win_opt][$sel_pntr][0] = $win_arlist[$i][0]
    $win_client[$win_opt][$sel_pntr][1] = $win_arlist[$i][1]
    If $win_opt = 0 Then
    GUICtrlSetData($feed_wintitle[$sel_pntr], $win_arlist[$i][0] & @CRLF & $win_arlist[$i][1])
    ElseIf $win_opt = 1 Then
    GUICtrlSetData($spam_wintitle[$sel_pntr], $win_arlist[$i][0] & @CRLF & $win_arlist[$i][1])
    ElseIf $win_opt = 2 Then
    GUICtrlSetData($buff_wintitle[$sel_pntr], $win_arlist[$i][0] & @CRLF & $win_arlist[$i][1])
    ElseIf $win_opt = 3 Then
    GUICtrlSetData($coll_wintitle[$sel_pntr], $win_arlist[$i][0] & @CRLF & $win_arlist[$i][1])
    EndIf


    GUISetState(@SW_ENABLE,$main)
    GUISetState(@SW_RESTORE,$main)
    GUIDelete($win_gui)
    Else
    _MsgBox(0,$title,"The selected client doesn't exist!" & @CRLF & "You should refresh the list.",$win_gui)
    EndIf
    EndIf
    Next
    EndFunc

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

    Func _MsgBox($flag,$title,$text,$gui)
    GUISetState(@SW_DISABLE,$gui)
    $msg = MsgBox($flag,$title,$text)
    GUISetState(@SW_ENABLE,$gui)
    GUISetState(@SW_RESTORE,$gui)
    Return $msg
    EndFunc

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

    Func _InputBox($title,$prompt,$default,$gui,$pass = "",$width = 0,$height = 0)
    GUISetState(@SW_DISABLE,$gui)
    $inpt = InputBox($title,$prompt,$default,$pass,$width,$height)
    GUISetState(@SW_ENABLE,$gui)
    GUISetState(@SW_RESTORE,$gui)
    Return $inpt
    EndFunc

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

    Func _Exit()
    _IniSave()
    Exit
    EndFunc

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

    Func _GUICtrlListBox_GetCurSel($hWnd)
    If IsHWnd($hWnd) Then
    Return _SendMessage($hWnd, 0x0188)
    Else
    Return GUICtrlSendMsg($hWnd, 0x0188, 0, 0)
    EndIf
    EndFunc ;==>_GUICtrlListBox_GetCurSel

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

    Func _GUICtrlListBox_SetCurSel($hWnd, $iIndex)
    If IsHWnd($hWnd) Then
    Return _SendMessage($hWnd, 0x0186, $iIndex)
    Else
    Return GUICtrlSendMsg($hWnd, 0x0186, $iIndex, 0)
    EndIf
    EndFunc ;==>_GUICtrlListBox_SetCurSel

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

    Func _SendMessage($hWnd, $iMsg, $wParam = 0, $lParam = 0, $iReturn = 0, $wParamType = "wparam", $lParamType = "lparam", $sReturnType = "lparam")
    Local $aResult = DllCall("user32.dll", $sReturnType, "SendMessage", "hwnd", $hWnd, "int", $iMsg, $wParamType, $wParam, $lParamType, $lParam)
    If @error Then Return SetError(@error, @extended, "")
    If $iReturn >= 0 And $iReturn <= 4 Then Return $aResult[$iReturn]
    Return $aResult
    EndFunc

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

    Func _TicksToTime($iTicks, ByRef $iHours, ByRef $iMins, ByRef $iSecs)
    If Number($iTicks) > 0 Then
    $iTicks = Round($iTicks / 1000)
    $iHours = Int($iTicks / 3600)
    $iTicks = Mod($iTicks, 3600)
    $iMins = Int($iTicks / 60)
    $iSecs = Round(Mod($iTicks, 60))
    ; If $iHours = 0 then $iHours = 24
    Return 1
    ElseIf Number($iTicks) = 0 Then
    $iHours = 0
    $iTicks = 0
    $iMins = 0
    $iSecs = 0
    Return 1
    Else
    SetError(1)
    Return 0
    EndIf
    EndFunc

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

    Func _ArrayDelete(ByRef $avArray, $iElement)
    If Not IsArray($avArray) Then Return SetError(1, 0, 0)

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

    Local $iUBound = UBound($avArray, 1) - 1

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

    If Not $iUBound Then
    $avArray = ""
    Return 0
    EndIf

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

    ; Bounds checking
    If $iElement < 0 Then $iElement = 0
    If $iElement > $iUBound Then $iElement = $iUBound

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

    ; Move items after $iElement up by 1
    Switch UBound($avArray, 0)
    Case 1
    For $i = $iElement To $iUBound - 1
    $avArray[$i] = $avArray[$i + 1]
    Next
    ReDim $avArray[$iUBound]
    Case 2
    Local $iSubMax = UBound($avArray, 2) - 1
    For $i = $iElement To $iUBound - 1
    For $j = 0 To $iSubMax
    $avArray[$i][$j] = $avArray[$i + 1][$j]
    Next
    Next
    ReDim $avArray[$iUBound][$iSubMax + 1]
    Case Else
    Return SetError(3, 0, 0)
    EndSwitch

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

    Return $iUBound
    EndFunc ;==>_ArrayDelete

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

    Func _GUICtrlListBox_FindString($hWnd, $sText, $fExact = False)
    If IsHWnd($hWnd) Then
    If ($fExact) Then
    Return _SendMessage($hWnd, 0x01A2, -1, $sText, 0, "wparam", "str")
    Else
    Return _SendMessage($hWnd, 0x018F, -1, $sText, 0, "wparam", "str")
    EndIf
    Else
    If ($fExact) Then
    Return GUICtrlSendMsg($hWnd, 0x01A2, -1, $sText)
    Else
    Return GUICtrlSendMsg($hWnd, 0x018F, -1, $sText)
    EndIf
    EndIf
    EndFunc ;==>_GUICtrlListBox_FindString

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

    Func _GUICtrlListBox_DeleteString($hWnd, $iIndex)
    If IsHWnd($hWnd) Then
    Return _SendMessage($hWnd, 0x0182, $iIndex)
    Else
    Return GUICtrlSendMsg($hWnd, 0x0182, $iIndex, 0)
    EndIf
    EndFunc

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


    wenn ihr mir dabei auch noch helfen könnten :S

  • ich will nich aufdringlich sein oder so aber ich bekomms irgentwie nich alleine hin :S
    is denn keiner da der mal kurz drüberschauen kann? :(

  • Hi,
    ich hab mir deine includes nochmal angeguckt, also:
    Du hast Variablen in Funktionen benutzt die NICHT deklariert waren,
    jetzt ergeben sich 2 Möglichkeiten:
    1. Du lässt die Funktion mit Parametern laufen

    [autoit]

    ;Beispielfunktion mit Paramtern
    Func Beispielfunktion($Variable1,$Variable2=1)
    ; Die $Variable1 MUSS initialisiert werden,
    ; $Variable2 KANN initialisiert werden , wenn nicht wird ihr der Wert 1 zugewiesen
    MsgBox(0,"Variablen:",$Variable1&" : "&$Variable2)
    Endfunc
    ;Der Aufruf der Funktionen geht wie folgt:
    Beispielfunktion(12345)
    Beispielfunktion(12345,54321)

    [/autoit]


    2.Möglichkeit (würde ich meistens von abraten) ist, dass du die "fehlenden" variablen
    als GLOBAL deklarierst und durch die Funktionen dadrauf zugreifst

    Dein nächster Fehler (in der window.au3) war der fehlende "#include" befehl für die UDFs.
    (Du kannst die Funktionen natürlich auch per Hand einfügen :rolleyes: )

    Ich hoffe ich habe nichts übersehen :S und konnte alles "relativ" klar rüberbringen :D

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • joa verstanden hab ich alles nur entweder bin ich dumm, blind oder beides das ich keine nicht deklarirten variablen finde :(
    hab das jetzt schon mehrmals durchgeguckt und find einfach keine ;(

  • sag ma du hast geguckt fenster öffnet sich aber die einzelnen knöpfchen funtzten nich und das du auch nich weißt wieso :o

    Oder wie meinste das ? :o

    Ich versuch mal hilfe zu holn :P

    Einmal editiert, zuletzt von Knuddlemaus (22. Juli 2009 um 15:23)

  • ich weiss jetzt immernoch nicht genau warum mich knuddle hier her gebeten hat, aber ich würde sagen um fehler zu finden hat ScITE sowie viele andere editoren ne suchfunktion ;)

    Dies ist ein Arzeneimittel.
    Bei Risiken und Haluzinationen fressen sie die Packungsbeilage und schlagen Sie ihren Arzt oder Apotheker.
    Jede Haftung wird abgelent.

    Vielen Dank für Ihre Kundentreue.
    mfg. TimBlo

    Aperture Science

    http://www.youtube.com/watch?v=Y6ljFaKRTrI

  • ja das prob is bei scite werden keine errors mehr angegeben aber keine funktionen funktionieren ;(

  • Also das Problem liegt weiterhin in der fehlenden Variablen Deklarierung...
    Du hast Variablen benutzt, die jedoch noch nicht "bekannt gemacht" wurden.
    Du willst die verschiedenen Dateien sicherlich einbinden (oder hast es bereits gemacht).
    Wenn du es bereits gemacht hast, kommt WARSCHEINLICH keine Fehlermeldung, da du bereits die
    Variablen deklariert hast BEVOR du die Funktionen aufrufst.
    Falls du sie einfach "nur so" geschrieben hast, dann klappt es ohne weiteres nicht.
    Hier mal die Fehlermeldung aus der ersten Datei (writeini.au3):

    Spoiler anzeigen

    C:\Users\USERNAME\Desktop\ftest.au3(5,39) : WARNING: $coll_key: possibly used before declaration.
    $read_inpt = GUICtrlRead($coll_key[$i])
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Users\USERNAME\Desktop\ftest.au3(32,49) : WARNING: $cmb_key: possibly used before declaration.
    GUICtrlSetData($coll_key[$i],"F-Key|" & $cmb_key,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Users\USERNAME\Desktop\ftest.au3(5,39) : ERROR: $coll_key: undeclared global variable.
    $read_inpt = GUICtrlRead($coll_key[$i])
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Users\USERNAME\Desktop\ftest.au3 - 1 error(s), 2 warning(s)


    2 Möglichkeiten gibt es nun:
    1. Du schreibst ganz oben in die iniwrite.au3
    "Global $coll_key=HIER DEN STANDARD WERT EINGEBEN, $cmb_key = HIER AUCH"
    oder
    2. Du schreibst die Fehlenden Variablen (in dem Fall: $coll_key,$cmb_key) in den "Funktionskopf"
    (d.h. in die Klammer der Funktion)
    und kannst per Aufruf den Wert bestimmen
    (Beispiel: siehe meinen letzten Post)

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!