GuiCtrlSetOnEvent / GuiSetOnEvent ()

  • GuiCtrlSetOnEvent / GuiSetOnEvent ()

    Ich habe ein leichtes Verständnisproblem mit diesen beiden Funktionen...
    Wenn ich die GUI unabhängig vom Laufen der Funktion bedienbar machen will, muss ich ja das mit diesen Befehlen machen;)...

    Allerdings ist mir nicht ganz klar, ob die nun in der "DANN" aktiven Funktion sein müssen oder ganz aussen... Wenn die in der Func sein müssen, habe ich ja kaum einen Vorteil...
    Ich arbeite öfter damit, aber immer wieder klappt es nicht so, wie es soll.

    Wie also richtig anwenden? Wie jetzt bei meinem aktuellen Script... Es ging am Anfang mal, aber jetzt kann ich kein neuen Daten (username und passwort) speichern...

    Der Button "Speichern" ist einfach ohne "Nutzen"...


    Spoiler anzeigen
    [autoit]


    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include

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

    ; Start Begrüßung
    $splash = @ScriptDir & "\splash.gif"
    SplashImageOn("", $splash, 265, 95, @DesktopWidth / 2 - 132, 200, 1)
    Sleep(2000)
    SplashOff()
    ; Ende Begrüßung

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

    $title = "Swoop'er V 1.00"
    TraySetToolTip($title)

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

    $UName = IniRead(@ScriptDir & "/config.ini", "LogIn", "Name", "")
    $PWord = IniRead(@ScriptDir & "/config.ini", "LogIn", "Passwort", "")

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

    Global $varNAME
    $item = InputBox("Hier das Produkt angeben!", "Bitte die exakte Seite des Produktes eingeben, dass sie beobachten wollen!", "", " M", 250, 150)
    If @error = 1 Then _Exit()

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

    #Region ### START Koda GUI section ###
    $Swoop_Form = GUICreate($title, 275, 323, 465, 212)
    $Aktueller_Betrag = GUICtrlCreateInput("", 24, 16, 105, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY))
    $Aktuelle_Zeit = GUICtrlCreateInput("", 144, 16, 105, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY))
    $z_v = GUICtrlCreateButton("Zeigen", 156, 288, 89, 25, $WS_GROUP)
    $bb = GUICtrlCreateButton("Bieten", 156, 256, 89, 25, $WS_GROUP)
    $new = GUICtrlCreateButton("New", 249, 0, 26, 17, $WS_GROUP)
    GUICtrlSetFont(-1, 8, 400, 0, "Nyala")
    $true_his = GUICtrlCreateLabel("", 48, 95, 180, 150)
    GUICtrlSetFont(-1, 9, 400, 0, "Nyala")
    $Bids = GUICtrlCreateGroup("Bids", 24, 72, 225, 170)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Obj_Name = GUICtrlCreateInput("", 24, 48, 225, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY))
    GUICtrlSetFont(-1, 8, 400, 0, "Segoe UI")
    $login = GUICtrlCreateButton("LogIn", 249, 16, 26, 17, $WS_GROUP)
    GUICtrlSetFont(-1, 7, 400, 0, "Nyala")
    $imp_bb = GUICtrlCreateButton("BB", 249, 32, 26, 17, $WS_GROUP)
    GUICtrlSetFont(-1, 8, 400, 0, "Nyala")
    GUISetState(@SW_SHOW)
    WinSetOnTop($title, "", 1)
    #EndRegion ### END Koda GUI section ###

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

    Opt("WinTitleMatchMode", 2)
    Opt("GUIOnEventMode", 1)

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

    Global $his_bieter, $Input1, $Input2, $login_save, $login_cancel, $Form2
    Dim $history[10]
    Dim $array[10][5]
    Dim $array_alt[10][5]
    $xpath_be = "//td[@id='a_current_price']" ; Aktueller Betrag
    $xpath_ze = "//div[@id='countertime']" ; Aktuelle Zeit
    $xpath_object = "//h3" ; Auktionsgegenstand
    $xpath_betrag_alt = ""

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

    For $i = 1 To 9 Step +1
    $array[$i][3] = "//div[@id='stats_test']/table/tbody/tr[" & ($i + 1) & "]/td" ; 1 = Gebot, 2 = Name, 3 = Art des Gebotes
    Next

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

    _Starting()

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

    Func _Starting()
    _FFStart($item, "default", 2, True)
    If _FFIsConnected() = 1 Then
    $varURL = _FFXpath("//div[@id='bilder_bottom']//td[1]/a/img", "src", 9)
    $varNAME = "Object.gif"
    InetGet($varURL, $varNAME)
    GUICtrlCreatePic("Object.gif", 48, 256, 80, 60, BitOR($SS_NOTIFY, $WS_GROUP, $WS_BORDER, $WS_CLIPSIBLINGS))
    GUICtrlSetData($Obj_Name, _FFXpath($xpath_object))
    _LogIn()
    Else
    MsgBox(48, "Achtung!", "Es ist ein Problem aufgetaucht!")
    _Exit()
    EndIf
    EndFunc ;==>_Starting

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

    Func _LogIn_GUI()
    $Form2 = GUICreate("LogIn", 213, 97, 825, 486)
    $Input1 = GUICtrlCreateInput($UName, 64, 16, 137, 21)
    $Input2 = GUICtrlCreateInput($PWord, 64, 40, 137, 21, BitOR($ES_PASSWORD, $ES_AUTOHSCROLL))
    $login_label = GUICtrlCreateLabel("LogIn:", 8, 18, 45, 22)
    GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
    $Label1 = GUICtrlCreateLabel("PW:", 8, 42, 29, 22)
    GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
    $login_save = GUICtrlCreateButton("Speichern", 16, 72, 81, 17, $WS_GROUP)
    $login_cancel = GUICtrlCreateButton("Abbrechen", 120, 72, 81, 17, $WS_GROUP)

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

    GUICtrlSetData($Input1, $UName)
    GUICtrlSetData($Input2, _StringEncrypt(0, $PWord, "sW00p"))

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

    GUISetState(@SW_SHOW)
    _History()
    EndFunc ;==>_LogIn_GUI

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

    Func _LogIn()
    If $UName <> "" And $PWord <> "" Then
    If _FFXPath("//div[@id='bcsubtext2']//td[3]") <> $UName Then
    _FFSetValueByName("login", $UName)
    _FFSetValueByName("password", $PWord)
    _FFFormSubmit()
    _FFLoadWait()

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

    If _FFXPath("//div[@id='bcsubtext2']//td[3]") <> $UName Then
    MsgBox(48, "Achtung!", "Das Einloggen war leider nicht erfolgreich! Prüfen sie ihre Daten!")
    EndIf
    EndIf
    EndIf
    _History()
    EndFunc ;==>_LogIn

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

    Func _IniWrite()
    IniWrite(@ScriptDir & "/config.ini", "LogIn", "Name", GUICtrlRead($Input1))
    $PW = _StringEncrypt(1, GUICtrlRead($Input2), "sW00p")
    IniWrite(@ScriptDir & "/config.ini", "LogIn", "Passwort", $PW)
    GUISetState(@SW_HIDE, $Form2)
    _LogIn()
    EndFunc ;==>_IniWrite

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

    Func _History()
    While 1
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    GUICtrlSetOnEvent($z_v, "_Showhide")
    GUICtrlSetOnEvent($bb, "_Bid")
    GUICtrlSetOnEvent($new, "_New")
    GUICtrlSetOnEvent($login, "_LogIn_GUI")
    GUICtrlSetOnEvent($login_save, "_IniWrite")

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

    $xpath_betr = _FFXPath($xpath_be)
    $xpath_betrag = StringTrimRight($xpath_betr, 2) & " €"
    $xpath_zeit = _FFXPath($xpath_ze)
    GUICtrlSetData($Aktueller_Betrag, $xpath_betrag)
    GUICtrlSetData($Aktuelle_Zeit, $xpath_zeit)

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

    For $i = 1 To 9 Step +1
    $bidder_1 = _FFXPath($array[$i][3], "textContent", 7)
    If $bidder_1[0] <> 0 Then
    If $bidder_1[3] = "Einzelgebot" Then $array[$i][0] = "EG"
    If $bidder_1[3] = "BietButler" Then $array[$i][0] = "BB"
    $array[$i][1] = $bidder_1[2]
    $array[$i][2] = StringTrimRight($bidder_1[1], 2) & " €"
    Else
    $array[$i][0] = "" ; Bidtype / Typus des Gebotes
    $array[$i][1] = "" ; Bidder / Bieter
    $array[$i][2] = "" ; Bid / Gebot
    EndIf
    Next

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

    If $xpath_betrag <> $xpath_betrag_alt Then
    $label_data = ""
    For $i = 1 To 9 Step +1
    For $k = 1 To 9 Step +1
    If $array[$i][2] = $array_alt[$k][2] Then
    $array[$i][4] = $array_alt[$k][4]
    ExitLoop
    EndIf
    If $k = 9 Then
    $array[$i][4] = _NowTime(4)
    EndIf
    Next
    If $array[$i][4] = "" Then
    $array[$i][4] = _NowTime(4)
    EndIf
    $label_data &= $array[$i][4] & " - " & $array[$i][0] & " - " & $array[$i][1] & " - " & $array[$i][2] & @CRLF
    Next
    GUICtrlSetData($true_his, $label_data)
    $xpath_betrag_alt = $xpath_betrag
    $array_alt = $array
    EndIf
    WEnd
    EndFunc ;==>_History

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

    Func _Showhide()
    $FF = WinGetTitle("[Class:MozillaUIWindowClass]") ; Sucht ein FireFox-Fenster
    If BitAND(WinGetState($FF, ""), 2) Then
    WinSetState($FF, "", @SW_HIDE)
    GUICtrlSetData($z_v, "Zeigen")
    Else
    WinSetState($FF, "", @SW_SHOW)
    WinSetState($FF, "", @SW_RESTORE)
    GUICtrlSetData($z_v, "Verbergen")
    EndIf
    EndFunc ;==>_Showhide

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

    Func _Bid()
    _FFLinkClick("fehlermeldung", "href")
    _History()
    EndFunc ;==>_Bid

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

    Func _New()
    WinSetState($title, "", @SW_HIDE)
    $item_2 = InputBox("Hier das Produkt angeben!", "Bitte die exakte Seite des Produktes eingeben, dass sie beobachten wollen!", "", " M", 250, 150)
    WinSetState($title, "", @SW_SHOW)
    If @error = 1 Then _History()
    If @error = 0 Then
    $item = $item_2
    _Starting()
    EndIf
    EndFunc ;==>_New

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

    Func _Exit()
    If FileExists($varNAME) Then FileDelete($varNAME)
    _FFQuit()
    Exit
    EndFunc ;==>_Exit

    [/autoit]


    Ich hoffe, jemand kann mir hier etwas Klarheit verschaffen...


    MfG
    Acanis

    2 Mal editiert, zuletzt von Acanis (16. November 2009 um 20:05)

  • Deinen Code wird wohl so niemand lesen wollen...

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Was hat das Forum gegen mich... Oo
    Bzw. gegen Google Chrome xD...

    Daran liegts, grade rausgefunden...
    Der löscht einfach alle Leerzeilen(NUR in DIESEM Forum^^...)


    LG

    -> bereinigt...


    *edit*

    Achja, SuFu habe ich ausgiebig genutzt... Gibts viel zu finden, aber nichts, was meine Fragen klärt...
    Eig. soll das ja funktionsunabhängig funktionieren...
    Packe ich das AUS der Funktion, funktioniert allerdings GAR kein Button mehr...
    SO funktioniert wenigstens GUI 1!(wobei atm auch nicht mehr das "X"... -.-)

    Einmal editiert, zuletzt von Acanis (13. November 2009 um 22:27)

  • War nahe dran habe mir mal den spass Gegönt!

    Spoiler anzeigen
    [autoit]

    #include <FF.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <Date.au3>
    #include <ButtonConstants.au3>
    #include <StaticConstants.au3>
    #include <String.au3>
    ; Start Begrüßung$splash = @ScriptDir & "\splash.gif"SplashImageOn("", $splash, 265, 95, @DesktopWidth / 2 - 132, 200, 1)Sleep(2000)SplashOff(); Ende Begrüßung
    $title = "Swoop'er V 1.00"
    TraySetToolTip($title)
    $UName = IniRead(@ScriptDir & "/config.ini", "LogIn", "Name", "")
    $PWord = IniRead(@ScriptDir & "/config.ini", "LogIn", "Passwort", "")
    Global $varNAME$item = InputBox("Hier das Produkt angeben!", "Bitte die exakte Seite des Produktes eingeben, dass sie beobachten wollen!", "", " M", 250, 150)
    If @error = 1 Then _Exit()
    #Region ### START Koda GUI section ###$Swoop_Form = GUICreate($title, 275, 323, 465, 212)$Aktueller_Betrag = GUICtrlCreateInput("", 24, 16, 105, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY))$Aktuelle_Zeit = GUICtrlCreateInput("", 144, 16, 105, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY))$z_v = GUICtrlCreateButton("Zeigen", 156, 288, 89, 25, $WS_GROUP)$bb = GUICtrlCreateButton("Bieten", 156, 256, 89, 25, $WS_GROUP)$new = GUICtrlCreateButton("New", 249, 0, 26, 17, $WS_GROUP)GUICtrlSetFont(-1, 8, 400, 0, "Nyala")$true_his = GUICtrlCreateLabel("", 48, 95, 180, 150)GUICtrlSetFont(-1, 9, 400, 0, "Nyala")$Bids = GUICtrlCreateGroup("Bids", 24, 72, 225, 170)GUICtrlCreateGroup("", -99, -99, 1, 1)$Obj_Name = GUICtrlCreateInput("", 24, 48, 225, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY))GUICtrlSetFont(-1, 8, 400, 0, "Segoe UI")$login = GUICtrlCreateButton("LogIn", 249, 16, 26, 17, $WS_GROUP)GUICtrlSetFont(-1, 7, 400, 0, "Nyala")$imp_bb = GUICtrlCreateButton("BB", 249, 32, 26, 17, $WS_GROUP)GUICtrlSetFont(-1, 8, 400, 0, "Nyala")GUISetState(@SW_SHOW)WinSetOnTop($title, "", 1)#EndRegion ### END Koda GUI section ###
    Opt("WinTitleMatchMode", 2) Opt("GUIOnEventMode", 1)
    Global $his_bieter, $Input1, $Input2, $login_save, $login_cancel, $Form2Dim
    $history[10]
    Dim $array[10][5]
    Dim $array_alt[10][5]
    $xpath_be = "//td[@id='a_current_price']" ; Aktueller Betrag$xpath_ze = "//div[@id='countertime']" ; Aktuelle Zeit$xpath_object = "//h3" ; Auktionsgegenstand$xpath_betrag_alt = ""
    For $i = 1 To 9 Step +1
    $array[$i][3] = "//div[@id='stats_test']/table/tbody/tr[" & ($i + 1) & "]/td" ; 1 = Gebot, 2 = Name, 3 = Art des GebotesNext
    _Starting()
    Next
    Func _Starting()
    _FFStart($item, "default", 2, True
    If _FFIsConnected() = 1 Then
    $varURL = _FFXpath("//div[@id='bilder_bottom']//td[1]/a/img", "src", 9)

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

    $varNAME = "Object.gif" InetGet($varURL, $varNAME)
    GUICtrlCreatePic("Object.gif", 48, 256, 80, 60, BitOR($SS_NOTIFY, $WS_GROUP, $WS_BORDER, $WS_CLIPSIBLINGS))
    GUICtrlSetData($Obj_Name, _FFXpath($xpath_object))
    _LogIn()
    Else
    MsgBox(48, "Achtung!", "Es ist ein Problem aufgetaucht!")
    _Exit()
    EndIf
    EndFunc ;==>_Starting
    Func _LogIn_GUI()
    $Form2 = GUICreate("LogIn", 213, 97, 825, 486)
    $Input1 = GUICtrlCreateInput($UName, 64, 16, 137, 21)
    $Input2 = GUICtrlCreateInput($PWord, 64, 40, 137, 21,
    BitOR($ES_PASSWORD, $ES_AUTOHSCROLL)) $login_label = GUICtrlCreateLabel("LogIn:", 8, 18, 45, 22)
    GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
    $Label1 = GUICtrlCreateLabel("PW:", 8, 42, 29, 22)
    GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
    $login_save = GUICtrlCreateButton("Speichern", 16, 72, 81, 17, $WS_GROUP)
    $login_cancel = GUICtrlCreateButton("Abbrechen", 120, 72, 81, 17, $WS_GROUP)
    GUICtrlSetData($Input1, $UName) GUICtrlSetData($Input2, _StringEncrypt(0, $PWord, "sW00p"))
    GUISetState(@SW_SHOW)
    _History()
    EndFunc ;==>_LogIn_GUI
    Func _LogIn()
    If $UName <> "" And $PWord <> "" Then
    If_FFXPath("//div[@id='bcsubtext2']//td[3]") <> $UName Then
    _FFSetValueByName("login", $UName)
    _FFSetValueByName("password", $PWord)
    _FFFormSubmit() _FFLoadWait()
    If _FFXPath("//div[@id='bcsubtext2']//td[3]") <> $UName Then
    MsgBox(48, "Achtung!", "Das Einloggen war leider nicht erfolgreich! Prüfen sie ihre Daten!") EndIf
    EndIf
    EndIf
    _History()
    EndFunc ;==>_LogIn
    Func _IniWrite()
    IniWrite(@ScriptDir & "/config.ini", "LogIn", "Name", GUICtrlRead($Input1)) $PW = _StringEncrypt(1, GUICtrlRead($Input2), "sW00p")
    IniWrite(@ScriptDir & "/config.ini", "LogIn", "Passwort", $PW)
    GUISetState(@SW_HIDE, $Form2) _LogIn()
    EndFunc ;==>_IniWrite
    Func _History()
    While 1
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    GUICtrlSetOnEvent($z_v, "_Showhide")
    GUICtrlSetOnEvent($bb, "_Bid")
    GUICtrlSetOnEvent($new, "_New")
    GUICtrlSetOnEvent($login, "_LogIn_GUI")
    GUICtrlSetOnEvent($login_save, "_IniWrite")
    $xpath_betr = _FFXPath($xpath_be) $xpath_betrag = StringTrimRight($xpath_betr, 2) & " €" $xpath_zeit = _FFXPath($xpath_ze)
    GUICtrlSetData($Aktueller_Betrag, $xpath_betrag)
    GUICtrlSetData($Aktuelle_Zeit, $xpath_zeit)
    For $i = 1 To 9 Step +1$bidder_1 = _FFXPath($array[$i][3], "textContent", 7)
    If $bidder_1[0] <> 0 Then
    If $bidder_1[3] = "Einzelgebot" Then $array[$i][0] = "EG"
    If $bidder_1[3] = "BietButler" Then $array[$i][0] = "BB" $array[$i][1] = $bidder_1[2] $array[$i][2] = StringTrimRight($bidder_1[1], 2) & " €"
    Else
    $array[$i][0] = "" ; Bidtype / Typus des Gebotes$array[$i][1] = "" ; Bidder / Bieter$array[$i][2] = "" ; Bid / GebotEndIfNext
    If $xpath_betrag <> $xpath_betrag_alt Then $label_data = "" For $i = 1 To 9 Step +1 For $k = 1 To 9 Step +1
    If $array[$i][2] = $array_alt[$k][2] Then $array[$i][4] = $array_alt[$k][4] ExitLoop
    EndIf
    If $k = 9 Then $array[$i][4] = _NowTime(4)
    Next
    $label_data &= $array[$i][4] & " - " & $array[$i][0] & " - " & $array[$i][1] & " - " & $array[$i][2] & @CRLF

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

    GUICtrlSetData($true_his, $label_data) $xpath_betrag_alt = $xpath_betrag$array_alt = $array
    If $array[$i][4] = "" Then
    $array[$i][4] = _NowTime(4)
    EndIf
    WEnd
    EndFunc ;==>_History
    Func _Showhide()
    $FF = WinGetTitle("[Class:MozillaUIWindowClass]") ; Sucht ein FireFox-FensterIf BitAND(WinGetState($FF, ""), 2) ThenWinSetState($FF, "", @SW_HIDE)GUICtrlSetData($z_v, "Zeigen")ElseWinSetState($FF, "", @SW_SHOW)WinSetState($FF, "", @SW_RESTORE)GUICtrlSetData($z_v, "Verbergen")EndIfEndFunc ;==>_Showhide
    EndFunc ;==>_Showhide
    Func _Bid()
    _FFLinkClick("fehlermeldung", "href")
    _History()
    EndFunc ;==>_Bid
    Func _New()
    WinSetState($title, "", @SW_HIDE) $item_2 = InputBox("Hier das Produkt angeben!", "Bitte die exakte Seite des Produktes eingeben, dass sie beobachten wollen!", "", " M", 250, 150)
    WinSetState($title, "", @SW_SHOW)
    If @error = 1 Then _History()
    If @error = 0 Then
    $item = $item_2_Starting()
    EndIf
    EndFunc ;==>_New
    Func _Exit()
    If FileExists($varNAME) Then
    FileDelete($varNAME)
    _FFQuit()
    EndIf
    Exit
    EndFunc ;==>_Exit

    [/autoit]


    LG Kleiner

  • Dachte erst, du hast mir ne Lösung gepostet und mich gefreut... :( Aber du hast nur von meine 1. Post direkt versucht, den Code ordentlich auseinander zu ziehen?!

    Habe ich aber doch selber mit nem anderen Explorer schon hinbekommen gehabt :/


    LG

    PS: Oder übersehe ich die Lösung grade? oO

  • Moin Acanis!

    Ich denke das wenn du die hilfe gelesen hast "hättest" dann würdest du dein fehler ganz schnell erkennen!!! ;)


    Ein Hinweis:

    [autoit]

    Local $z_v = GUICtrlCreateButton("Zeigen", 156, 288, 89, 25, $WS_GROUP)
    GUICtrlSetOnEvent($z_v, "_Showhide")

    [/autoit]


    LG Kleiner

  • In der Hilfe, bzw. im Beispiel ist die GUI local definiert, stimmt... *hm*

    Danke^^...

    Aber trotzdem, da ist das GuiSetOnEvent in der Funktion drin, aber überall sieht man es "draußen"...

    Muss ich dann immer bei der GUI, auf die das wirkt, das stehen haben, oder in der aktuellen Funktion oder geht IMMER außerhalb der Funktion?...


    LG


    *edit*

    Habs sogar umgeändert und versucht, überall hin zu packen...
    Nur das Speichern klappt nicht... Also jegliche Aktion auf der neuen GUI...

    Einmal editiert, zuletzt von Acanis (14. November 2009 um 11:18)

  • Hey!


    Global kannst du deine Variablen auch Deklariert aber du "mußt" GUICtrlSetOnEvent() immer unter auszuführenden GUICtrlCreate haben ansonsten weiß der code nicht woführ das sein soll!


    Edit:/ habe dein edit übesehen die gui in der func

    [autoit]

    $Form2 = GUICreate("LogIn", 213, 97, 825, 486)
    $Input1 = GUICtrlCreateInput($UName, 64, 16, 137, 21)
    $Input2 = GUICtrlCreateInput($PWord, 64, 40, 137, 21, BitOR($ES_PASSWORD, $ES_AUTOHSCROLL))
    $login_label = GUICtrlCreateLabel("LogIn:", 8, 18, 45, 22)
    GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
    $Label1 = GUICtrlCreateLabel("PW:", 8, 42, 29, 22)
    GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
    $login_save = GUICtrlCreateButton("Speichern", 16, 72, 81, 17, $WS_GROUP)
    $login_cancel = GUICtrlCreateButton("Abbrechen", 120, 72, 81, 17, $WS_GROUP)

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

    GUICtrlSetData($Input1, $UName)
    GUICtrlSetData($Input2, _StringEncrypt(0, $PWord, "sW00p"))

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

    GUISetState(@SW_SHOW)

    [/autoit]


    am anfang des code müßen alle Variablen auch Deklariert werden

    [autoit]

    GUISetState(@SW_SHOW)

    [/autoit]


    brauchst du nicht

    [autoit]

    GUISetState()

    [/autoit]


    das reicht aus


    LG Kleiner

    Einmal editiert, zuletzt von kleiner27 (14. November 2009 um 11:33)

  • Das klappt leider nicht...
    Sobald das kleine GUI auf ist, geht auch das große nicht mehr und das kleine halt auch nicht...

    Ich habe alle Vars global deklariert(sogar die Label) und direkt unter der Gui(bei der kleinen sogar direkt unter dem CreateButton/ und mit -1 direkt darunter) mein SetOnEvent...

    -> Nichts...


    LG

  • Beispiel:
    Anmerkung du braust die gui nicht in eine func stellen du hast sie ja sowieso versteckt!

    [autoit]

    Global $Form2,$Input1, $Input2,$login_label,$Label1 ,$login_save,$login_save,$login_cancel; am anfang des code
    Func _LogIn_GUI()
    $Form2 = GUICreate("LogIn", 213, 97, 825, 486)
    ;GUISetOnEvent()
    $Input1 = GUICtrlCreateInput($UName, 64, 16, 137, 21)
    $Input2 = GUICtrlCreateInput($PWord, 64, 40, 137, 21, BitOR($ES_PASSWORD, $ES_AUTOHSCROLL))
    $login_label = GUICtrlCreateLabel("LogIn:", 8, 18, 45, 22)
    GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
    $Label1 = GUICtrlCreateLabel("PW:", 8, 42, 29, 22)
    GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
    $login_save = GUICtrlCreateButton("Speichern", 16, 72, 81, 17, $WS_GROUP)
    ;GUICtrlSetOnEvent()
    $login_cancel = GUICtrlCreateButton("Abbrechen", 120, 72, 81, 17, $WS_GROUP)
    ;GUICtrlSetOnEvent()
    GUICtrlSetData($Input1, $UName)
    GUICtrlSetData($Input2, _StringEncrypt(0, $PWord, "sW00p"))

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

    GUISetState(@SW_SHOW); wie gesagt das brauchst du nicht sondern ----> GUISetState()
    _History()
    EndFunc ;==>_LogIn_GUI

    [/autoit]

    LG Kleiner

  • Nochmal zur Verständnis,...

    Ich kann beide GUIs ausserhalb von Funcs haben, weil die eh versteckt sind, bis man Status ändert, ne?...

    Also könnte ich dann ja einfach mit dem einen Button ein Show auf das 2. GUI machen..


    WIE erkennt aber denn AutoIt, welche Button und so zum 2. GUI gehören?!...
    Bis das 2. Gui anfängt, nimmt er dann alles aufs "aktuelle"?!

    Jedenfalls habe ich es versucht...

    Und es klappt leider nicht so... Das GUI beendet sich nun einfach beim Starten, weil er n Array-Fehler hat, lt. Scite...
    Oo
    Aber wenn ich das GUI!!! wieder anders regel, ist wieder alles in Ordnung -.-...

    Spoiler anzeigen
    [autoit]


    #include <FF.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <Date.au3>
    #include <ButtonConstants.au3>
    #include <StaticConstants.au3>
    #include <String.au3>

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

    ; Start Begrüßung
    $splash = @ScriptDir & "\splash.gif"
    SplashImageOn("", $splash, 265, 95, @DesktopWidth / 2 - 132, 200, 1)
    Sleep(2000)
    SplashOff()
    ; Ende Begrüßung

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

    $title = "Swoop'er V 1.00"
    TraySetToolTip($title)

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

    $UName = IniRead(@ScriptDir & "/config.ini", "LogIn", "Name", "")
    $PWord = IniRead(@ScriptDir & "/config.ini", "LogIn", "Passwort", "")

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

    Global $varNAME
    $item = InputBox("Hier das Produkt angeben!", "Bitte die exakte Seite des Produktes eingeben, dass sie beobachten wollen!", "", " M", 250, 150)
    If @error = 1 Then _Exit()

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

    Global $Swoop_Form, $Aktueller_Betrag, $Aktuelle_Zeit, $z_v, $bb, $new, $true_his, $Bids, $Obj_Name, $login, $imp_bb, $Form2, $Input1, $Input2, $login_label, $Label1, $login_save, $login_cancel

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

    #Region ### START Koda GUI section ###
    $Swoop_Form = GUICreate($title, 275, 323, 465, 212)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    $Aktueller_Betrag = GUICtrlCreateInput("", 24, 16, 105, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY))
    $Aktuelle_Zeit = GUICtrlCreateInput("", 144, 16, 105, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY))
    $z_v = GUICtrlCreateButton("Zeigen", 156, 288, 89, 25, $WS_GROUP)
    $bb = GUICtrlCreateButton("Bieten", 156, 256, 89, 25, $WS_GROUP)
    $new = GUICtrlCreateButton("New", 249, 0, 26, 17, $WS_GROUP)
    GUICtrlSetFont(-1, 8, 400, 0, "Nyala")
    $true_his = GUICtrlCreateLabel("", 48, 95, 180, 150)
    GUICtrlSetFont(-1, 9, 400, 0, "Nyala")
    $Bids = GUICtrlCreateGroup("Bids", 24, 72, 225, 170)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Obj_Name = GUICtrlCreateInput("", 24, 48, 225, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY))
    GUICtrlSetFont(-1, 8, 400, 0, "Segoe UI")
    $login = GUICtrlCreateButton("LogIn", 249, 16, 26, 17, $WS_GROUP)
    GUICtrlSetFont(-1, 7, 400, 0, "Nyala")
    $imp_bb = GUICtrlCreateButton("BB", 249, 32, 26, 17, $WS_GROUP)
    GUICtrlSetFont(-1, 8, 400, 0, "Nyala")
    GUISetState()
    WinSetOnTop($title, "", 1)
    GUICtrlSetOnEvent($z_v, "_Showhide")
    GUICtrlSetOnEvent($bb, "_Bid")
    GUICtrlSetOnEvent($new, "_New")
    GUICtrlSetOnEvent($login, "_LogIn_GUI")
    #EndRegion ### END Koda GUI section ###
    $Form2 = GUICreate("LogIn", 213, 97, 825, 486)
    $Input1 = GUICtrlCreateInput($UName, 64, 16, 137, 21)
    $Input2 = GUICtrlCreateInput($PWord, 64, 40, 137, 21, BitOR($ES_PASSWORD, $ES_AUTOHSCROLL))
    $login_label = GUICtrlCreateLabel("LogIn:", 8, 18, 45, 22)
    GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
    $Label1 = GUICtrlCreateLabel("PW:", 8, 42, 29, 22)
    GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
    $login_save = GUICtrlCreateButton("Speichern", 16, 72, 81, 17, $WS_GROUP)
    GUICtrlSetOnEvent($login_save, "_IniWrite")
    $login_cancel = GUICtrlCreateButton("Abbrechen", 120, 72, 81, 17, $WS_GROUP)
    GuiSetState(@SW_HIDE)

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

    GUICtrlSetData($Input1, $UName)
    GUICtrlSetData($Input2, _StringEncrypt(0, $PWord, "sW00p"))

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

    Opt("WinTitleMatchMode", 2)
    Opt("GUIOnEventMode", 1)

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

    Global $his_bieter, $Input1, $Input2, $login_save, $login_cancel, $Form2
    Dim $history[10]
    Dim $array[10][5]
    Dim $array_alt[10][5]
    $xpath_be = "//td[@id='a_current_price']" ; Aktueller Betrag
    $xpath_ze = "//div[@id='countertime']" ; Aktuelle Zeit
    $xpath_object = "//h3" ; Auktionsgegenstand
    $xpath_betrag_alt = ""

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

    For $i = 1 To 9 Step +1
    $array[$i][3] = "//div[@id='stats_test']/table/tbody/tr[" & ($i + 1) & "]/td" ; 1 = Gebot, 2 = Name, 3 = Art des Gebotes
    Next

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

    _Starting()

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

    Func _Starting()
    _FFStart($item, "default", 2, True)
    If _FFIsConnected() = 1 Then
    $varURL = _FFXpath("//div[@id='bilder_bottom']//td[1]/a/img", "src", 9)
    $varNAME = "Object.gif"
    InetGet($varURL, $varNAME)
    GUICtrlCreatePic("Object.gif", 48, 256, 80, 60, BitOR($SS_NOTIFY, $WS_GROUP, $WS_BORDER, $WS_CLIPSIBLINGS))
    GUICtrlSetData($Obj_Name, _FFXpath($xpath_object))
    _LogIn()
    Else
    MsgBox(48, "Achtung!", "Es ist ein Problem aufgetaucht!")
    _Exit()
    EndIf
    EndFunc ;==>_Starting

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

    Func _LogIn_GUI()
    GUISetState(@SW_SHOW, $Form2)
    EndFunc ;==>_LogIn_GUI

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

    Func _LogIn()
    If $UName <> "" And $PWord <> "" Then
    If _FFXPath("//div[@id='bcsubtext2']//td[3]") <> $UName Then
    _FFSetValueByName("login", $UName)
    _FFSetValueByName("password", $PWord)
    _FFFormSubmit()
    _FFLoadWait()

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

    If _FFXPath("//div[@id='bcsubtext2']//td[3]") <> $UName Then
    MsgBox(48, "Achtung!", "Das Einloggen war leider nicht erfolgreich! Prüfen sie ihre Daten!")
    EndIf
    EndIf
    EndIf
    _History()
    EndFunc ;==>_LogIn

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

    Func _IniWrite()
    IniWrite(@ScriptDir & "/config.ini", "LogIn", "Name", GUICtrlRead($Input1))
    $PW = _StringEncrypt(1, GUICtrlRead($Input2), "sW00p")
    IniWrite(@ScriptDir & "/config.ini", "LogIn", "Passwort", $PW)
    GUISetState(@SW_HIDE, $Form2)
    _LogIn()
    EndFunc ;==>_IniWrite

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

    Func _History()
    While 1
    $xpath_betr = _FFXPath($xpath_be)
    $xpath_betrag = StringTrimRight($xpath_betr, 2) & " €"
    $xpath_zeit = _FFXPath($xpath_ze)
    GUICtrlSetData($Aktueller_Betrag, $xpath_betrag)
    GUICtrlSetData($Aktuelle_Zeit, $xpath_zeit)

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

    For $i = 1 To 9 Step +1
    $bidder_1 = _FFXPath($array[$i][3], "textContent", 7)
    If $bidder_1[0] <> 0 Then
    If $bidder_1[3] = "Einzelgebot" Then $array[$i][0] = "EG"
    If $bidder_1[3] = "BietButler" Then $array[$i][0] = "BB"
    $array[$i][1] = $bidder_1[2]
    $array[$i][2] = StringTrimRight($bidder_1[1], 2) & " €"
    Else
    $array[$i][0] = "" ; Bidtype / Typus des Gebotes
    $array[$i][1] = "" ; Bidder / Bieter
    $array[$i][2] = "" ; Bid / Gebot
    EndIf
    Next

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

    If $xpath_betrag <> $xpath_betrag_alt Then
    $label_data = ""
    For $i = 1 To 9 Step +1
    For $k = 1 To 9 Step +1
    If $array[$i][2] = $array_alt[$k][2] Then
    $array[$i][4] = $array_alt[$k][4]
    ExitLoop
    EndIf
    If $k = 9 Then
    $array[$i][4] = _NowTime(4)
    EndIf
    Next
    If $array[$i][4] = "" Then
    $array[$i][4] = _NowTime(4)
    EndIf
    $label_data &= $array[$i][4] & " - " & $array[$i][0] & " - " & $array[$i][1] & " - " & $array[$i][2] & @CRLF
    Next
    GUICtrlSetData($true_his, $label_data)
    $xpath_betrag_alt = $xpath_betrag
    $array_alt = $array
    EndIf
    WEnd
    EndFunc ;==>_History

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

    Func _Showhide()
    $FF = WinGetTitle("[Class:MozillaUIWindowClass]") ; Sucht ein FireFox-Fenster
    If BitAND(WinGetState($FF, ""), 2) Then
    WinSetState($FF, "", @SW_HIDE)
    GUICtrlSetData($z_v, "Zeigen")
    Else
    WinSetState($FF, "", @SW_SHOW)
    WinSetState($FF, "", @SW_RESTORE)
    GUICtrlSetData($z_v, "Verbergen")
    EndIf
    EndFunc ;==>_Showhide

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

    Func _Bid()
    _FFLinkClick("fehlermeldung", "href")
    _History()
    EndFunc ;==>_Bid

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

    Func _New()
    WinSetState($title, "", @SW_HIDE)
    $item_2 = InputBox("Hier das Produkt angeben!", "Bitte die exakte Seite des Produktes eingeben, dass sie beobachten wollen!", "", " M", 250, 150)
    WinSetState($title, "", @SW_SHOW)
    If @error = 1 Then _History()
    If @error = 0 Then
    $item = $item_2
    _Starting()
    EndIf
    EndFunc ;==>_New

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

    Func _Exit()
    If FileExists($varNAME) Then FileDelete($varNAME)
    _FFQuit()
    Exit
    EndFunc ;==>_Exit

    [/autoit]

    LG

  • Hey!


    Ich hoffe das dein problem jetzt gelöst ist!
    Wenn du eine gui estellst: alles was du darunter schreibst bist show oder hiden gehört alles zu der gui und wird auch so behandelt!

    Spoiler anzeigen
    [autoit]

    #include <FF.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <Date.au3>
    #include <ButtonConstants.au3>
    #include <StaticConstants.au3>
    #include <String.au3>
    Opt("WinTitleMatchMode", 2)
    Opt("GUIOnEventMode", 1)
    ; Start Begrüßung
    $splash = @ScriptDir & "\splash.gif"
    SplashImageOn("", $splash, 265, 95, @DesktopWidth / 2 - 132, 200, 1)
    Sleep(2000)
    SplashOff()
    ; Ende Begrüßung

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

    $title = "Swoop'er V 1.00"
    TraySetToolTip($title)

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

    $UName = IniRead(@ScriptDir & "/config.ini", "LogIn", "Name", "")
    $PWord = IniRead(@ScriptDir & "/config.ini", "LogIn", "Passwort", "")

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

    Global $varNAME
    $item = InputBox("Hier das Produkt angeben!", "Bitte die exakte Seite des Produktes eingeben, dass sie beobachten wollen!", "", " M", 250, 150)
    If @error = 1 Then _Exit()

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

    Global $Swoop_Form, $Aktueller_Betrag, $Aktuelle_Zeit, $z_v, $bb, $new, $true_his, $Bids, $Obj_Name, $login, $imp_bb, $Form2, $Input1, $Input2, $login_label, $Label1, $login_save, $login_cancel
    Global $his_bieter, $Input1, $Input2, $login_save, $login_cancel, $Form2,$item
    #Region ### START Koda GUI section ###
    $Swoop_Form = GUICreate($title, 275, 323, 465, 212)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    $Aktueller_Betrag = GUICtrlCreateInput("", 24, 16, 105, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY))
    $Aktuelle_Zeit = GUICtrlCreateInput("", 144, 16, 105, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY))
    $z_v = GUICtrlCreateButton("Zeigen", 156, 288, 89, 25, $WS_GROUP)
    $bb = GUICtrlCreateButton("Bieten", 156, 256, 89, 25, $WS_GROUP)
    $new = GUICtrlCreateButton("New", 249, 0, 26, 17, $WS_GROUP)
    GUICtrlSetFont(-1, 8, 400, 0, "Nyala")
    $true_his = GUICtrlCreateLabel("", 48, 95, 180, 150)
    GUICtrlSetFont(-1, 9, 400, 0, "Nyala")
    $Bids = GUICtrlCreateGroup("Bids", 24, 72, 225, 170)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Obj_Name = GUICtrlCreateInput("", 24, 48, 225, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY))
    GUICtrlSetFont(-1, 8, 400, 0, "Segoe UI")
    $login = GUICtrlCreateButton("LogIn", 249, 16, 26, 17, $WS_GROUP)
    GUICtrlSetFont(-1, 7, 400, 0, "Nyala")
    $imp_bb = GUICtrlCreateButton("BB", 249, 32, 26, 17, $WS_GROUP)
    GUICtrlSetFont(-1, 8, 400, 0, "Nyala")
    GUISetState()

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

    WinSetOnTop($title, "", 1)
    GUICtrlSetOnEvent($z_v, "_Showhide")
    GUICtrlSetOnEvent($bb, "_Bid")
    GUICtrlSetOnEvent($new, "_New")
    GUICtrlSetOnEvent($login, "_LogIn_GUI")

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

    #EndRegion ### END Koda GUI section ###
    $Form2 = GUICreate("LogIn", 213, 97, 825, 486)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit2");------------------------->zu schließen
    $Input1 = GUICtrlCreateInput($UName, 64, 16, 137, 21)
    $Input2 = GUICtrlCreateInput($PWord, 64, 40, 137, 21, BitOR($ES_PASSWORD, $ES_AUTOHSCROLL))
    $login_label = GUICtrlCreateLabel("LogIn:", 8, 18, 45, 22)
    GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
    $Label1 = GUICtrlCreateLabel("PW:", 8, 42, 29, 22)
    GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
    $login_save = GUICtrlCreateButton("Speichern", 16, 72, 81, 17, $WS_GROUP)
    GUICtrlSetOnEvent($login_save, "_IniWrite")
    $login_cancel = GUICtrlCreateButton("Abbrechen", 120, 72, 81, 17, $WS_GROUP)
    GUISetState(@SW_HIDE,$Form2)

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

    GUICtrlSetData($Input1, $UName)
    GUICtrlSetData($Input2, _StringEncrypt(0, $PWord, "sW00p"))

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

    Dim $history[10]
    Dim $array[10][5]
    Dim $array_alt[10][5]
    $xpath_be = "//td[@id='a_current_price']" ; Aktueller Betrag
    $xpath_ze = "//div[@id='countertime']" ; Aktuelle Zeit
    $xpath_object = "//h3" ; Auktionsgegenstand
    $xpath_betrag_alt = ""

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

    For $i = 1 To 9 Step +1
    $array[$i][3] = "//div[@id='stats_test']/table/tbody/tr[" & ($i + 1) & "]/td" ; 1 = Gebot, 2 = Name, 3 = Art des Gebotes
    Next

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

    While 1
    Sleep(10) ; eine schleife das, das fenster auch offen bleibt
    WEnd

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

    _Starting()

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

    Func _Starting()
    _FFStart($item, "default", 2, True)
    If _FFIsConnected() = 1 Then
    $varURL = _FFXpath("//div[@id='bilder_bottom']//td[1]/a/img", "src", 9)
    $varNAME = "Object.gif"
    InetGet($varURL, $varNAME)
    GUICtrlCreatePic("Object.gif", 48, 256, 80, 60, BitOR($SS_NOTIFY, $WS_GROUP, $WS_BORDER, $WS_CLIPSIBLINGS))
    GUICtrlSetData($Obj_Name, _FFXpath($xpath_object))
    _LogIn()
    Else
    MsgBox(48, "Achtung!", "Es ist ein Problem aufgetaucht!")
    _Exit()
    EndIf
    EndFunc ;==>_Starting

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

    Func _LogIn_GUI()
    GUISetState(@SW_SHOW, $Form2)
    EndFunc ;==>_LogIn_GUI

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

    Func _LogIn()
    If $UName <> "" And $PWord <> "" Then
    If _FFXPath("//div[@id='bcsubtext2']//td[3]") <> $UName Then
    _FFSetValueByName("login", $UName)
    _FFSetValueByName("password", $PWord)
    _FFFormSubmit()
    _FFLoadWait()

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

    If _FFXPath("//div[@id='bcsubtext2']//td[3]") <> $UName Then
    MsgBox(48, "Achtung!", "Das Einloggen war leider nicht erfolgreich! Prüfen sie ihre Daten!")
    EndIf
    EndIf
    EndIf
    _History()
    EndFunc ;==>_LogIn

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

    Func _IniWrite()
    IniWrite(@ScriptDir & "/config.ini", "LogIn", "Name", GUICtrlRead($Input1))
    $PW = _StringEncrypt(1, GUICtrlRead($Input2), "sW00p")
    IniWrite(@ScriptDir & "/config.ini", "LogIn", "Passwort", $PW)
    GUISetState(@SW_HIDE, $Form2)
    _LogIn()
    EndFunc ;==>_IniWrite

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

    Func _History()
    While 1
    $xpath_betr = _FFXPath($xpath_be)
    $xpath_betrag = StringTrimRight($xpath_betr, 2) & " €"
    $xpath_zeit = _FFXPath($xpath_ze)
    GUICtrlSetData($Aktueller_Betrag, $xpath_betrag)
    GUICtrlSetData($Aktuelle_Zeit, $xpath_zeit)

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

    For $i = 1 To 9 Step +1
    $bidder_1 = _FFXPath($array[$i][3], "textContent", 7)
    If $bidder_1[0] <> 0 Then
    If $bidder_1[3] = "Einzelgebot" Then $array[$i][0] = "EG"
    If $bidder_1[3] = "BietButler" Then $array[$i][0] = "BB"
    $array[$i][1] = $bidder_1[2]
    $array[$i][2] = StringTrimRight($bidder_1[1], 2) & " €"
    Else
    $array[$i][0] = "" ; Bidtype / Typus des Gebotes
    $array[$i][1] = "" ; Bidder / Bieter
    $array[$i][2] = "" ; Bid / Gebot
    EndIf
    Next

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

    If $xpath_betrag <> $xpath_betrag_alt Then
    $label_data = ""
    For $i = 1 To 9 Step +1
    For $k = 1 To 9 Step +1
    If $array[$i][2] = $array_alt[$k][2] Then
    $array[$i][4] = $array_alt[$k][4]
    ExitLoop
    EndIf
    If $k = 9 Then
    $array[$i][4] = _NowTime(4)
    EndIf
    Next
    If $array[$i][4] = "" Then
    $array[$i][4] = _NowTime(4)
    EndIf
    $label_data &= $array[$i][4] & " - " & $array[$i][0] & " - " & $array[$i][1] & " - " & $array[$i][2] & @CRLF
    Next
    GUICtrlSetData($true_his, $label_data)
    $xpath_betrag_alt = $xpath_betrag
    $array_alt = $array
    EndIf
    WEnd
    EndFunc ;==>_History

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

    Func _Showhide()
    $FF = WinGetTitle("[Class:MozillaUIWindowClass]") ; Sucht ein FireFox-Fenster
    If BitAND(WinGetState($FF, ""), 2) Then
    WinSetState($FF, "", @SW_HIDE)
    GUICtrlSetData($z_v, "Zeigen")
    Else
    WinSetState($FF, "", @SW_SHOW)
    WinSetState($FF, "", @SW_RESTORE)
    GUICtrlSetData($z_v, "Verbergen")
    EndIf
    EndFunc ;==>_Showhide

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

    Func _Bid()
    _FFLinkClick("fehlermeldung", "href")
    _History()
    EndFunc ;==>_Bid

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

    Func _New()
    WinSetState($title, "", @SW_HIDE)
    $item_2 = InputBox("Hier das Produkt angeben!", "Bitte die exakte Seite des Produktes eingeben, dass sie beobachten wollen!", "", " M", 250, 150)
    WinSetState($title, "", @SW_SHOW)
    If @error = 1 Then _History()
    If @error = 0 Then
    $item = $item_2
    _Starting()
    EndIf
    EndFunc ;==>_New

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

    Func _Exit()
    If FileExists($varNAME) Then FileDelete($varNAME)
    _FFQuit()
    Exit
    EndFunc ;==>_Exit

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

    Func _Exit2()
    GUISetState(@SW_HIDE,$Form2)
    EndFunc

    [/autoit]

    Ich habe eine while hinzugefügt und eine func zum schließen der zweiten gui !
    Eine $item auf global gesetzt denn du solltest schauen das du nicht sachen vorher schon bearbeiten willst die och nicht erkannt sind das heist das die arbeit nach der erkennung statfindet!


    LG Kleiner

  • Ist es leider nicht, du hast es auch nicht getestet, oder?...
    So, wie du es nun gemacht hast, klappt GAR kein Button mehr :/

    Und deine "neue Schleife" ist übrigens überflüssig, bzw. killt das Script...
    Man braucht eine solche nur, wenn das Script erst durch eine Aktivierung startet...
    Ich habe unter der Gui direkt ein Func-call, der mit einer Schleife das Script startet...

    Soll heißen, dass das Script NIE einfach durchlaufen kann, es eine Schleife gibt und deine Schleife verhindern würde, dass das SCript überhaupt startet(bis auf GUI-creation)...


    LG

  • Also wen ich mich nicht irre dann war dein frage und der post geht um GUICtrlSetOnEvent() und ja dann hast du dich total falsch ausgedrück!

    Also was hast du den jetzt genau für ein problem?

    Anmerkung: dein code soltest du schon allein schreiben! ;)


    LG Kleiner

  • Ja, ich steuer doch den BUTTON "speichern" durch meine GUI...
    Wenn ich die 2. GUI auf mache, kann ich es nicht mehr schließen und Speichern startet nicht die FUnktion, die Speichern starten soll (Name eintragen! Und die Funktion selbst funktioniert sicher!)

    Er nimmt die Daten nicht in die Ini -> Button geht nicht -> GuiCtrlSetOnEvent geht nicht


    Ich will ihn ja alleine schreiben xD... -.-

    Ich habe schon mindestens 30 Versionen probiert Oo... Und übrigens, ein anderes Script, an dem ich arbeite, hat das selbe Problem...
    Ich kann im Laufen die GUI nicht richtig ansteuerbar machen, nur durch HotKeys...

    Und das ist dumm... Ich weiss nicht, was ich falsch mache, ich habe soviel rumprobiert :/...

    LG

    • Offizieller Beitrag
    Zitat

    Wenn du eine gui estellst: alles was du darunter schreibst bist show oder hiden gehört alles zu der gui und wird auch so behandelt!

    Stimmt nicht so ganz. Wenn du bei beiden GUI´s mit GUISetOnEvent eine Funktion für z.B. $GUI_EVENT_CLOSE erstellst, dann wird nur die letztere verwendet.
    Für den OnEventMode gibt es noch das Makro @GUI_WinHandle. In diesem befindet sich das Handle der GUI, auf der zuletzt geklickt wurde.

    Hier mal ein Beispiel:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    Opt('MustDeclareVars', 1)

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

    Example()

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

    Func Example()
    Global $parent1,$parent2, $ok1, $cancel1

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

    Opt("GUICoordMode", 2)
    Opt("GUIResizeMode", 1)
    Opt("GUIOnEventMode", 1)

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

    $parent1 = GUICreate("GUI1",300,200,100,100)
    GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "SpecialEvents")

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

    GUISetState(@SW_SHOW,$parent1)
    $parent2 = GUICreate("GUI2",300,200,200,200)
    GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "SpecialEvents")
    $ok1 = GUICtrlCreateButton("OK", 10, 30, 50)
    GUICtrlSetOnEvent(-1, "OKPressed")

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

    $cancel1 = GUICtrlCreateButton("Cancel", 0, -1)
    GUICtrlSetOnEvent(-1, "CancelPressed")

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

    GUISetState(@SW_SHOW,$parent2)

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

    ; Just idle around
    While 1
    Sleep(10)
    WEnd
    EndFunc ;==>Example

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

    Func OKPressed()

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

    MsgBox(0, "OK Pressed", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle & " CtrlHandle=" & @GUI_CtrlHandle)
    EndFunc ;==>OKPressed

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

    Func CancelPressed()
    MsgBox(0, "Cancel Pressed", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle & " CtrlHandle=" & @GUI_CtrlHandle)
    EndFunc ;==>CancelPressed

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

    Func SpecialEvents()

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

    Select
    Case @GUI_CtrlId = $GUI_EVENT_CLOSE
    Switch @GUI_WinHandle
    Case $parent1
    MsgBox(0, "Close Pressed", "Schließen Button der 1. GUI wurde gedrückt")
    Case $parent2
    MsgBox(0, "Close Pressed", "Schließen Button der 2. GUI wurde gedrückt")
    EndSwitch
    Exit

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

    Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
    Switch @GUI_WinHandle
    Case $parent1
    MsgBox(0, "Window Minimized", "Minimized Button der 1. GUI wurde gedrückt")
    GUISetState(@SW_MINIMIZE,$parent1)
    Case $parent2
    MsgBox(0, "Window Minimized", "Minimized Button der 2. GUI wurde gedrückt")
    GUISetState(@SW_MINIMIZE,$parent2)
    EndSwitch

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

    EndSelect

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

    EndFunc ;==>SpecialEvents

    [/autoit]

    Edit: Habe mir mal wieder selbst ins Knie geschossen und zuviel Arbeit gemacht. :pinch:
    Edit2: Ganz umsonst ist das Beispiel aber auch nicht. Es veranschaulicht die Benutzung der GUIEvents bei mehreren EVENT´s und GUI´s ^^