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
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
; 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, $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 = ""
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
_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
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 / Gebot
EndIf
Next
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
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
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()
Exit
EndFunc ;==>_Exit
Ich hoffe, jemand kann mir hier etwas Klarheit verschaffen...
MfG
Acanis