Hilfe bei Buttonfehler

  • Hallo,
    ich habe ein script geschrieben, welches sich automatisch in mein E-Mailfach einloggt. Ich habe ebenfalls noch eine Funktion hinzugefügt, über welche ich die Login-Daten in eine Ini-Datei speichere. Dies funktioniert auch soweit problemlos. Nun habe ich noch eine Funktion hinzugefügt, die ebenfalls über das Try-Icon ausgeführt wird. Diese öffnet einen neuen Gui auf dem sich mehrere Buttons befinden, welche als Schnellleiste für meine Homepages dienen. Nun habe ich das Problem, dass wenn ich den Loginteil öffne, es sich einloggt, dann aber ohne betätigung von einem Button selbständig dauerhaft immer wieder eine Seite öffnet, bis die die Schnellleiste Manuell öffne. Kann mir vllt jemand helfen? Ich bastle nun schon ganz schön lange dran herum, kann den Fehler jedoch nicht finden. Wäre toll wenn mir jemand helfen könnte.

    (zu Ausführung des Scripts wir ein zusätzliches benötigit um die Steuerung von Firefox zu ermöglichen.)

    Spoiler anzeigen


    #include <FF.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

    Global $iniName, $iniPW, $Button1, $Button2, $Button3, $Button4, $Button5, $Button6, $ButtonSpeichern, $Input1, $Input2, $Form1

    Opt("TrayOnEventMode",1)
    Opt("TrayMenuMode",1)


    $infoitem = TrayCreateItem("Login")
    TrayItemSetOnEvent(-1,"Login")

    TrayCreateItem("")

    $infoitem = TrayCreateItem("Einstellungen")
    TrayItemSetOnEvent(-1,"Einstellungen")

    TrayCreateItem("")


    $infoitem = TrayCreateItem("Schnellleiste zeigen")
    TrayItemSetOnEvent(-1,"Schnellleiste")

    TrayCreateItem("")

    $exititem = TrayCreateItem("Exit")
    TrayItemSetOnEvent(-1,"ExitScript")
    TraySetState()

    $iniName = iniread("config.ini","Login","Name","Defaul")
    $iniPW = iniread("config.ini","Login","PW","Defaul")

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_Hide)
    Case $Button1
    _Link1()
    Case $Button2
    _Link2()
    Case $Button3
    _Link3()
    Case $Button4
    _Link4()
    Case $Button5
    _Link5()
    Case $Button6
    _Link6()
    Case $ButtonSpeichern
    _speichern()
    EndSwitch
    WEnd

    Func Login()
    _FFStart("Loginhomepage")
    _FFSetValue($iniName, "user", "name")
    _FFSetValue($iniPW , "password", "name")
    EndFunc

    Func Einstellungen()
    $Form2 = GUICreate("Einstellungen", 138, 194, 320, 203)
    $Input1 = GUICtrlCreateInput("", 8, 64, 121, 21)
    $Input2 = GUICtrlCreateInput("", 8, 120, 121, 21,"*")
    $Label1 = GUICtrlCreateLabel("Benutzername", 8, 40, 100, 17)
    $Label2 = GUICtrlCreateLabel("Passwort", 8, 96, 100, 17)
    $ButtonSpeichern = GUICtrlCreateButton("Speichern", 8, 160, 75, 25, 0)
    GUISetFont (12,400)
    $Label3 = GUICtrlCreateLabel("Einstellungen", 8, 8, 100, 20)
    GUISetState(@SW_SHOW)
    EndFunc

    Func _speichern()
    $Name=GUICtrlRead($Input1)
    $PW=GUICtrlRead($Input2)
    IniWrite("Config.ini", "login", "name", $Name)
    IniWrite("Config.ini", "login", "pw", $PW)
    EndFunc

    Func _Link1()
    _FFOpenUrl("http://www.google.de")
    EndFunc

    Func _Link2()
    _FFOpenUrl("")
    EndFunc

    Func _Link3()
    _FFOpenUrl("")
    EndFunc

    func _Link4()
    _FFOpenUrl("")
    EndFunc

    Func _Link5()
    _FFOpenUrl("")
    EndFunc

    Func _link6()
    _FFOpenUrl("")
    EndFunc

    Func ExitScript()
    Exit
    EndFunc

    Func Schnellleiste()
    $Form1 = GUICreate("Schnellleiste", 578, 74, 192, 124)
    $Button1 = GUICtrlCreateButton("Google", 8, 24, 75, 25, 0)
    $Button2 = GUICtrlCreateButton("", 104, 24, 75, 25, 0)
    $Button3 = GUICtrlCreateButton("", 200, 24, 75, 25, 0)
    $Button4 = GUICtrlCreateButton("", 296, 24, 75, 25, 0)
    $Button5 = GUICtrlCreateButton("", 392, 24, 75, 25, 0)
    $Button6 = GUICtrlCreateButton("", 488, 24, 75, 25, 0)
    GUISetState(@SW_SHOW)
    WinSetOnTop("Schnellleiste","", 1)
    EndFunc

    Einmal editiert, zuletzt von descent (5. April 2010 um 15:45)

  • Hallo descent,

    da GuiGetMsg() 0 zurückliefert, solange kein Ereignis vorliegt und die ganzen Variablen welche später die ID enthalten auch noch 0 sind, wird zwangsläufig der Case Zweig für den 1. Button ausgeführt. Einfachste Lösung: an aller 1. Stelle case 0 einfügen:

    Spoiler anzeigen
    [autoit]

    #include <FF.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    Global $iniName, $iniPW, $Button1, $Button2, $Button3, $Button4, $Button5, $Button6, $ButtonSpeichern, $Input1, $Input2, $Form1

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

    Opt("TrayOnEventMode",1)
    Opt("TrayMenuMode",1)

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

    $infoitem = TrayCreateItem("Login")
    TrayItemSetOnEvent(-1,"Login")

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

    TrayCreateItem("")

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

    $infoitem = TrayCreateItem("Einstellungen")
    TrayItemSetOnEvent(-1,"Einstellungen")

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

    TrayCreateItem("")

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

    $infoitem = TrayCreateItem("Schnellleiste zeigen")
    TrayItemSetOnEvent(-1,"Schnellleiste")

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

    TrayCreateItem("")

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

    $exititem = TrayCreateItem("Exit")
    TrayItemSetOnEvent(-1,"ExitScript")
    TraySetState()

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

    $iniName = iniread("config.ini","Login","Name","Defaul")
    $iniPW = iniread("config.ini","Login","PW","Defaul")

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    case 0
    ;nothingToDo
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_Hide)
    Case $Button1
    _Link1()
    Case $Button2
    _Link2()
    Case $Button3
    _Link3()
    Case $Button4
    _Link4()
    Case $Button5
    _Link5()
    Case $Button6
    _Link6()
    Case $ButtonSpeichern
    _speichern()
    EndSwitch
    WEnd

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

    Func Login()
    _FFStart("Loginhomepage")
    _FFSetValue($iniName, "user", "name")
    _FFSetValue($iniPW , "password", "name")
    EndFunc

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

    Func Einstellungen()
    $Form2 = GUICreate("Einstellungen", 138, 194, 320, 203)
    $Input1 = GUICtrlCreateInput("", 8, 64, 121, 21)
    $Input2 = GUICtrlCreateInput("", 8, 120, 121, 21,"*")
    $Label1 = GUICtrlCreateLabel("Benutzername", 8, 40, 100, 17)
    $Label2 = GUICtrlCreateLabel("Passwort", 8, 96, 100, 17)
    $ButtonSpeichern = GUICtrlCreateButton("Speichern", 8, 160, 75, 25, 0)
    GUISetFont (12,400)
    $Label3 = GUICtrlCreateLabel("Einstellungen", 8, 8, 100, 20)
    GUISetState(@SW_SHOW)
    EndFunc

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

    Func _speichern()
    $Name=GUICtrlRead($Input1)
    $PW=GUICtrlRead($Input2)
    IniWrite("Config.ini", "login", "name", $Name)
    IniWrite("Config.ini", "login", "pw", $PW)
    EndFunc

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

    Func _Link1()
    _FFOpenUrl("http://www.google.de")
    EndFunc

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

    Func _Link2()
    _FFOpenUrl("")
    EndFunc

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

    Func _Link3()
    _FFOpenUrl("")
    EndFunc

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

    func _Link4()
    _FFOpenUrl("")
    EndFunc

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

    Func _Link5()
    _FFOpenUrl("")
    EndFunc

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

    Func _link6()
    _FFOpenUrl("")
    EndFunc

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

    Func ExitScript()
    Exit
    EndFunc

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

    Func Schnellleiste()
    $Form1 = GUICreate("Schnellleiste", 578, 74, 192, 124)
    $Button1 = GUICtrlCreateButton("Google", 8, 24, 75, 25, 0)
    $Button2 = GUICtrlCreateButton("", 104, 24, 75, 25, 0)
    $Button3 = GUICtrlCreateButton("", 200, 24, 75, 25, 0)
    $Button4 = GUICtrlCreateButton("", 296, 24, 75, 25, 0)
    $Button5 = GUICtrlCreateButton("", 392, 24, 75, 25, 0)
    $Button6 = GUICtrlCreateButton("", 488, 24, 75, 25, 0)
    GUISetState(@SW_SHOW)
    WinSetOnTop("Schnellleiste","", 1)
    EndFunc

    [/autoit]

    ungetestet da ich FF-Automation nicht installiert habe.

    2. Möglichkeit: du erstellst alle GUIS am Anfang versteckt und zeigst sie bei Bedarf.
    3. Möglichkeit: alles in OnEvent-Mode umschreiben, da kann so etwas nicht passieren

    mfg (Auto)Bert

    Einmal editiert, zuletzt von AutoBert (3. April 2010 um 19:51)