Mein Button reagiert nur 1xmal

  • Hallo zusammen,

    ich stehe gerade etwas auf dem schlauch. Könnte sich jemand mal meinen Code anschauen und mir verraten warum sich mein Button $Config nur einmal drücken lässt ??
    Gibt es eigentlich eine Debugging Funktion, die den Code immer nur Schrittweise ausführt, damit ich mit bekommen kann wo das Problem genau ist??

    Spoiler anzeigen
    [autoit]

    #include <winapi.au3>
    #include <IE.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GuiButton.au3>
    #include <Forms\Optionsmenu.isf>

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

    If Not FileExists(@ScriptDir & "\config.ini") Then _Optionsmenu()

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

    Const $SPI_SETWORKAREA = 47
    Const $SPIF_SENDCHANGE = 2

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

    $tRECT = DllStructCreate('int;int;int;int')
    ;DllStructSetData($tRECT, 1, 0) ; left
    DllStructSetData($tRECT, 2, 95) ; top
    DllStructSetData($tRECT, 3, IniRead(@ScriptDir & "\config.ini", "Options", "AufloesungBreite", "")) ; right
    DllStructSetData($tRECT, 4, IniRead(@ScriptDir & "\config.ini", "Options", "AufloesungHoehe", "") - 30) ; buttom
    _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tRECT), $SPIF_SENDCHANGE)

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

    Local $oIE = _IECreateEmbedded()
    $gui_IE = GUICreate("IcingaOnDesktop", IniRead(@ScriptDir & "\config.ini", "Options", "AufloesungBreite", ""), 95, 0, 0, $WS_POPUP + $WS_VISIBLE)
    GUICtrlCreateObj($oIE, 0, 0, IniRead(@ScriptDir & "\config.ini", "Options", "AufloesungBreite", ""), 95)

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

    _IENavigate($oIE, "http://icinga.firma.xyz.de/nagvis/frontend/nagvis-js/index.php?mod=Map&act=view&show=" & IniRead(@ScriptDir & "\config.ini", "Options", "NagVisMAP", ""))

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

    Send(IniRead(@ScriptDir & "\config.ini", "Options", "NagVisUser", ""))
    Send("{TAB}")
    Send(IniRead(@ScriptDir & "\config.ini", "Options", "NagVisPass", ""))
    Send("{Enter}")

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

    $GUI_Kontextmenu = GUICreate("IcingaOnDesktop_Config", 20, 20, 1898, 5, $WS_POPUP + $WS_VISIBLE, $WS_EX_TOPMOST)
    $Config = GUICtrlCreatePic(@ScriptDir & "\Images\zahnrad.jpg", 0, 0, 20, 20)
    GUISetState(@SW_SHOW, $GUI_Kontextmenu)
    WinSetOnTop("IcingaOnDesktop_Config", "", 1)
    WinActivate("IcingaOnDesktop_Config")
    While 1

    $oIE.document.body.scroll = "NO"
    $oIE.document.body.style.overflow = "hidden"

    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Config
    _Optionsmenu()
    WinActivate("IcingaOnDesktop_Config")
    EndSwitch

    WEnd

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

    Func _Optionsmenu()

    GUICtrlSetData($Aufl_B, IniRead(@ScriptDir & "\config.ini", "Options", "AufloesungBreite", ""))
    GUICtrlSetData($Aufl_H, IniRead(@ScriptDir & "\config.ini", "Options", "AufloesungHoehe", ""))
    GUICtrlSetData($Map, IniRead(@ScriptDir & "\config.ini", "Options", "NagVisMAP", ""))
    GUICtrlSetData($User, IniRead(@ScriptDir & "\config.ini", "Options", "NagVisUser", ""))
    GUICtrlSetData($Pass, IniRead(@ScriptDir & "\config.ini", "Options", "NagVisPass", ""))

    GUISetState(@SW_SHOW, $Optionsmenu)

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    GUIDelete($Optionsmenu)
    ExitLoop
    Case $ENDE
    _ENDE()
    Case $OK
    IniWrite(@ScriptDir & "\config.ini", "Options", "AufloesungBreite", GUICtrlRead($Aufl_B))
    IniWrite(@ScriptDir & "\config.ini", "Options", "AufloesungHoehe", GUICtrlRead($Aufl_H))
    IniWrite(@ScriptDir & "\config.ini", "Options", "NagVisMAP", GUICtrlRead($Map))
    IniWrite(@ScriptDir & "\config.ini", "Options", "NagVisUser", GUICtrlRead($User))
    IniWrite(@ScriptDir & "\config.ini", "Options", "NagVisPass", GUICtrlRead($Pass))
    GUIDelete($Optionsmenu)
    ExitLoop
    EndSwitch
    WEnd
    EndFunc

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

    Func _ENDE()
    Const $SPI_SETWORKAREA = 47
    Const $SPIF_SENDCHANGE = 2
    $tRECT = DllStructCreate('int;int;int;int')
    ;DllStructSetData($tRECT, 1, 0) ; left
    DllStructSetData($tRECT, 2, 0) ; top
    DllStructSetData($tRECT, 3, IniRead(@ScriptDir & "\config.ini", "Options", "AufloesungBreite", "")) ; right
    DllStructSetData($tRECT, 4, IniRead(@ScriptDir & "\config.ini", "Options", "AufloesungHoehe", "") - 30) ; buttom
    _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tRECT), $SPIF_SENDCHANGE)

    Exit
    EndFunc

    [/autoit]

    Bin für jeden Tipp dankbar.

    Grüße
    CrazyER

    Einmal editiert, zuletzt von CrazyER (6. September 2012 um 12:23)

  • Da du dann noch ein GUI erzeugst könnte es an dem liegen. Versuchs mal mit GUISwitch. Und zum Debuggen gibt es verschiedene nützliche dinge im "Tools" Bereich von Scite.

    Gruss Shadowigor