Submit Button abfangen

  • Hallo und guten Abend zusammen,

    wieder mal habe ich ein Problem was ich nicht aufgelöst bekomme.
    Ich arbeite schon seid etwas längerer Zeit an einem Programm da unter anderem die Aufgabe hat
    Informationen, die man zuvor in eine im Autoit gebauten GUI einträgt, auf einer Internetseite
    in die dafür vorgesehenen Inputfelder einträgt. Das funktioniert auch ganz gut. Eigentlich könnte ich
    den prozess auch soweit automatisieren das der Submit Button auch über _IEFormSubmit mit bearbeitet wird.
    Da sich aber diese Internetseite sehr oft ändert und ich darauf keinen Einfluss nehmen kann habe ich das
    bewusst weg gelassen.
    Hier erstmal der Code mit dem ich die Internetseite ,je nach dem was für eine Seite gerade geladen wurde,
    durch mein Script mit den Informationen befülle.

    Spoiler anzeigen
    [autoit]

    Local $Page_1, $html_1
    Local $teil_1 =0
    Local $teil_2 =0
    Local $SQL_Wert_Checkbox=_SQL_Anfrage_Auftrag("Select m.WEBTOOLINFO From monteur m Where m.Monteur = '"&$User&"' ")

    If $SQL_Wert_Checkbox = 0 Then

    _IE_GUI_INFO()

    EndIf

    Local $Wartezeit = 1000

    ; fragt die Internetadresse aus der Datenbank ab die aufgerufen werden soll
    $Unity_IE_Add=_SQL_Anfrage("SELECT UNITY_IE_ADD FROM global")
    ;Local $oIE = _IECreate ($Unity_IE_Add, 0)
    Local $oIE = _IECreate ($Unity_IE_Add, 0)

    $Wenn_Page_0_ist = 0

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

    While 1
    ConsoleWrite(" ganz oben in der Whlie" & @CR)


    $Page_1=_WebSeite_String_Suche($oIE)
    If $raus == 44 Or @error Then ExitLoop
    If $Page_1 == 0 And $Wenn_Page_0_ist == 0 Then _IE_GUI_Moment()
    ConsoleWrite(" Wert aus $Page_1 = " & $Page_1 & @CR)

    ; nun wird nach dem Teilstring $sMyString in $sLinkText gesucht
    If $Page_1 = 1 Then

    ; Techniker ID und Auftragsnummer
    _IE_GUI_Moment()
    ConsoleWrite(" techId" & @CR)

    Local $TechnikerID_Form = _IEFormGetObjByName($oIE, "orderDetails")
    Local $AutragsNr_Form = _IEFormGetObjByName($oIE, "orderDetails")
    $TechnikerID_Query = _IEFormElementGetObjByName ($TechnikerID_Form, "techId")
    _IEFormElementSetValue ($TechnikerID_Query, $TECH_ID)
    $AutragsNr_Query = _IEFormElementGetObjByName ($AutragsNr_Form, "woId")
    _IEFormElementSetValue ($AutragsNr_Query, GUICtrlRead($IN_AUFTRAGSNUMMER))

    _IE_Warteschleife("techId", $oIE)

    If $raus == 44 Or @error Then ExitLoop

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


    ElseIf $Page_1 = 2 Then

    ; MAC Adresse
    _IE_GUI_Moment()
    ConsoleWrite(" macAddress" & @CR)

    Local $MAC_Adresse_Form = _IEFormGetObjByName($oIE, "orderDetails")
    Local $MAC_Adresse_Query = _IEFormElementGetObjByName ($MAC_Adresse_Form, "macAddress")

    _IEFormElementSetValue ($MAC_Adresse_Query, GUICtrlRead($In_MACAdresse))

    _IE_Warteschleife("macAddress", $oIE)

    If $raus == 44 Or @error Then ExitLoop

    ElseIf $Page_1 = 3 Then
    ; WE Lage und WLAN ja / nein
    _IE_GUI_Moment()
    ConsoleWrite(" wenr" & @CR)
    Local $Check_Data_1of4_Form = _IEFormGetObjByName($oIE, "orderDetails")
    Local $Check_Data_1of4_WElage_Query = _IEFormElementGetObjByName ($Check_Data_1of4_Form, "wenr")

    _IEFormElementSetValue ($Check_Data_1of4_WElage_Query, GUICtrlRead($In_WELage))

    if GUICtrlRead($Checkbox_WLAN) == 4 Then
    Local $Check_Data_1of4_WLAN_Query = _IEFormElementCheckboxSelect ($Check_Data_1of4_Form, "wlan", "", 0, "byIndex")

    Else
    Local $Check_Data_1of4_WLAN_Query = _IEFormElementCheckboxSelect ($Check_Data_1of4_Form, "wlan", "", 1, "byIndex")

    EndIf

    _IE_Warteschleife("WE Lage", $oIE)

    If $raus == 44 Or @error Then ExitLoop

    ElseIf $Page_1 = 4 Then

    ; Positionseingabe
    _IE_GUI_Moment()
    Local $Check_Data_2of4_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_Data_2of4_Positionen_1_Query = _IEFormElementGetObjByName ($Check_Data_2of4_Form, "position_1")
    _IEFormElementSetValue ($Check_Data_2of4_Positionen_1_Query, GUICtrlRead($In_Pos1))

    Local $Check_Data_2of4_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_Data_2of4_Positionen_2_Query = _IEFormElementGetObjByName ($Check_Data_2of4_Form, "position_2")
    _IEFormElementSetValue ($Check_Data_2of4_Positionen_2_Query, GUICtrlRead($In_Pos2))

    Local $Check_Data_2of4_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_Data_2of4_Positionen_3_Query = _IEFormElementGetObjByName ($Check_Data_2of4_Form, "position_3")
    _IEFormElementSetValue ($Check_Data_2of4_Positionen_3_Query, GUICtrlRead($In_Pos3))

    Local $Check_Data_2of4_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_Data_2of4_Positionen_4_Query = _IEFormElementGetObjByName ($Check_Data_2of4_Form, "position_4")
    _IEFormElementSetValue ($Check_Data_2of4_Positionen_4_Query, GUICtrlRead($In_Pos4))

    Local $Check_Data_2of4_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_Data_2of4_Positionen_5_Query = _IEFormElementGetObjByName ($Check_Data_2of4_Form, "position_5")
    _IEFormElementSetValue ($Check_Data_2of4_Positionen_5_Query, GUICtrlRead($In_Pos5))

    Local $Check_Data_2of4_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_Data_2of4_Positionen_6_Query = _IEFormElementGetObjByName ($Check_Data_2of4_Form, "position_6")
    _IEFormElementSetValue ($Check_Data_2of4_Positionen_6_Query, GUICtrlRead($In_Pos6))

    Local $Check_Data_2of4_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_Data_2of4_Positionen_7_Query = _IEFormElementGetObjByName ($Check_Data_2of4_Form, "position_7")
    _IEFormElementSetValue ($Check_Data_2of4_Positionen_7_Query, GUICtrlRead($In_Pos7))

    Local $Check_Data_2of4_Form = _IEFormGetObjByName($oIE, "orderDetails")

    If $Auftrags_Art_kurzel == "a" Then
    Local $wert = "*6"
    ElseIf $Auftrags_Art_kurzel == "s" Then
    Local $wert = "*5"
    EndIf


    Local $Check_Data_2of4_Positionen_8_Query = _IEFormElementGetObjByName ($Check_Data_2of4_Form, "position_8")
    If $Pos_6_Zeahler <> 0 Then
    _IEFormElementSetValue ($Check_Data_2of4_Positionen_8_Query, $Pos_6_Zeahler & $wert)
    Else
    _IEFormElementSetValue ($Check_Data_2of4_Positionen_8_Query, "")
    EndIf


    Local $Check_Data_2of4_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_Data_2of4_Comments_Query = _IEFormElementGetObjByName ($Check_Data_2of4_Form, "comment_1")
    _IEFormElementSetValue ($Check_Data_2of4_Comments_Query, GUICtrlRead($Bemerkung)&@CRLF&"Techniker: "&$User)

    _IE_Warteschleife("Positionen", $oIE)

    If $raus == 44 Or @error Then ExitLoop

    ElseIf $Page_1 = 5 Then

    ; Bearbeitung der achte Internetseite == > Pegelwerte
    _IE_GUI_Moment()
    Local $Check_Data_3of4_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_Data_3of4_Pegel_HUP_S4_Query = _IEFormElementGetObjByName ($Check_Data_3of4_Form, "hupS4")
    _IEFormElementSetValue ($Check_Data_3of4_Pegel_HUP_S4_Query, GUICtrlRead($In_HUEP_1))

    Local $Check_Data_3of4_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_Data_3of4_Pegel_HUP_K23_Query = _IEFormElementGetObjByName ($Check_Data_3of4_Form, "hupK23")
    _IEFormElementSetValue ($Check_Data_3of4_Pegel_HUP_K23_Query, GUICtrlRead($In_HUEP_2))

    Local $Check_Data_3of4_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_Data_3of4_Pegel_Verst_S4_Query = _IEFormElementGetObjByName ($Check_Data_3of4_Form, "verstS4")
    _IEFormElementSetValue ($Check_Data_3of4_Pegel_Verst_S4_Query, GUICtrlRead($In_VV_1))

    Local $Check_Data_3of4_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_Data_3of4_Pegel_Verst_K23_Query = _IEFormElementGetObjByName ($Check_Data_3of4_Form, "verstK23")
    _IEFormElementSetValue ($Check_Data_3of4_Pegel_Verst_K23_Query, GUICtrlRead($In_VV_2))

    Local $Check_Data_3of4_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_Data_3of4_Pegel_Dose_S4_Query = _IEFormElementGetObjByName ($Check_Data_3of4_Form, "doseS4")
    _IEFormElementSetValue ($Check_Data_3of4_Pegel_Dose_S4_Query, GUICtrlRead($In_Dose_1))

    Local $Check_Data_3of4_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_Data_3of4_Pegel_Dose_K23_Query = _IEFormElementGetObjByName ($Check_Data_3of4_Form, "doseK23")
    _IEFormElementSetValue ($Check_Data_3of4_Pegel_Dose_K23_Query, GUICtrlRead($In_Dose_2))


    Local $Check_Data_3of4_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_Data_txof4_Pegel_Dose_K2tx_Query = _IEFormElementGetObjByName ($Check_Data_3of4_Form, "tx")
    _IEFormElementSetValue ($Check_Data_txof4_Pegel_Dose_K2tx_Query, GUICtrlRead($In_TX))

    Local $Check_Data_3of4_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_Data_rxof4_Pegel_Dose_K2rx_Query = _IEFormElementGetObjByName ($Check_Data_3of4_Form, "rx")
    _IEFormElementSetValue ($Check_Data_rxof4_Pegel_Dose_K2rx_Query, GUICtrlRead($In_RX))

    Local $Check_Data_3of4_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_Data_snof4_Pegel_Dose_K2sn_Query = _IEFormElementGetObjByName ($Check_Data_3of4_Form, "sn")
    _IEFormElementSetValue ($Check_Data_snof4_Pegel_Dose_K2sn_Query, GUICtrlRead($In_SNR))

    _IE_Warteschleife("Pegel", $oIE)

    If $raus == 44 Or @error Then ExitLoop

    ElseIf $Page_1 = 6 Then

    ; Bearbeitung der neunten Internetseite == > Start und End Zeiten und TV Auswahl
    _IE_GUI_Moment()
    Local $Check_Data_4of4_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_Data_4of4_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_Data_4of4_Form, "tvSourceOfSupply")
    _IEFormElementOptionSelect ($Check_Data_4of4_Combo_Empfang_Query, StringLower(GUICtrlRead($Combo_Empfang)),1 , "byValue")

    Local $Check_Data_4of4_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_Data_3of4_In_Startzeit_H_Query = _IEFormElementGetObjByName ($Check_Data_4of4_Form, "startHour")
    _IEFormElementSetValue ($Check_Data_3of4_In_Startzeit_H_Query, GUICtrlRead($In_Startzeit_H))

    Local $Check_Data_4of4_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_Data_3of4_In_Startzeit_MIN_Query = _IEFormElementGetObjByName ($Check_Data_4of4_Form, "startMinute")
    _IEFormElementSetValue ($Check_Data_3of4_In_Startzeit_MIN_Query, GUICtrlRead($In_Startzeit_MIN))

    Local $Check_Data_4of4_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_Data_3of4_In_Endzeit_H_Query = _IEFormElementGetObjByName ($Check_Data_4of4_Form, "finishHour")
    _IEFormElementSetValue ($Check_Data_3of4_In_Endzeit_H_Query, GUICtrlRead($In_Endzeit_H))

    Local $Check_Data_4of4_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_Data_3of4_In_Endzeit_MIN_Query = _IEFormElementGetObjByName ($Check_Data_4of4_Form, "finishMinute")
    _IEFormElementSetValue ($Check_Data_3of4_In_Endzeit_MIN_Query, GUICtrlRead($In_Endzeit_MIN))

    _IE_Warteschleife("TV Auswahl", $oIE)

    If $raus == 44 Or @error Then ExitLoop

    ElseIf $Page_1 = 7 Then ; Störungscode

    _IE_GUI_Moment()
    Local $Check_faultCode_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_code_1of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_faultCode_Form, "faultCode")
    _IEFormElementSetValue ($Check_code_1of3_Combo_Empfang_Query, GUICtrlRead($In_Code_1))

    Local $Check_code_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_code_2of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_Form, "fixCode")
    _IEFormElementSetValue ($Check_code_2of3_Combo_Empfang_Query, GUICtrlRead($In_Code_2))

    Local $Check_code_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_code_3of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_Form, "solutionCode")
    _IEFormElementSetValue ($Check_code_3of3_Combo_Empfang_Query, GUICtrlRead($In_Code_3))

    Local $Check_Data_Comments = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_Data_Comments_Query = _IEFormElementGetObjByName ($Check_Data_Comments, "comment_1")
    _IEFormElementSetValue ($Check_Data_Comments_Query, GUICtrlRead($Bemerkung))


    _IE_Warteschleife("Entstörcode eingeben", $oIE)

    If $raus == 44 Or @error Then ExitLoop


    ElseIf $Page_1 = 8 Then ; Technikername usw.

    _IE_GUI_Moment()
    Local $Check_code_11of3_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_code_11of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_11of3_Form, "tekName")
    _IEFormElementSetValue ($Check_code_11of3_Combo_Empfang_Query, $User)

    Local $Check_code_12of3_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_code_12of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_12of3_Form, "tekPhone")
    _IEFormElementSetValue ($Check_code_12of3_Combo_Empfang_Query, GUICtrlRead($La_PhoneNum_die_Nummer))

    Local $Check_code_18of3_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_code_18of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_18of3_Form, "position_1")
    _IEFormElementSetValue ($Check_code_18of3_Combo_Empfang_Query, GUICtrlRead($In_Pos1))

    Local $Check_code_19of3_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_code_19of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_19of3_Form, "position_2")
    _IEFormElementSetValue ($Check_code_19of3_Combo_Empfang_Query, GUICtrlRead($In_Pos2))

    Local $Check_code_20of3_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_code_20of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_20of3_Form, "position_3")
    _IEFormElementSetValue ($Check_code_20of3_Combo_Empfang_Query, GUICtrlRead($In_Pos3))

    Local $Check_code_21of3_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_code_21of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_21of3_Form, "position_4")
    _IEFormElementSetValue ($Check_code_21of3_Combo_Empfang_Query, GUICtrlRead($In_Pos4))

    Local $Check_code_22of3_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_code_22of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_22of3_Form, "position_5")
    _IEFormElementSetValue ($Check_code_22of3_Combo_Empfang_Query, GUICtrlRead($In_Pos5))


    Local $Check_code_13of3_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_code_13of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_13of3_Form, "finishHour")
    _IEFormElementSetValue ($Check_code_13of3_Combo_Empfang_Query, StringLower(GUICtrlRead($In_Endzeit_H)))

    Local $Check_code_14of3_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_code_14of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_14of3_Form, "finishMinute")
    _IEFormElementSetValue ($Check_code_14of3_Combo_Empfang_Query, StringLower(GUICtrlRead($In_Endzeit_MIN)))

    Local $Check_code_15of3_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_code_15of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_15of3_Form, "finishDay")
    _IEFormElementSetValue ($Check_code_15of3_Combo_Empfang_Query, StringLower(GUICtrlRead($Combo_Empfang)))

    Local $Check_code_16of3_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_code_16of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_16of3_Form, "finishMonth")
    _IEFormElementSetValue ($Check_code_16of3_Combo_Empfang_Query, StringLower(GUICtrlRead($Combo_Empfang)))

    Local $Check_code_17of3_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_code_17of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_17of3_Form, "finishYear")
    _IEFormElementSetValue ($Check_code_17of3_Combo_Empfang_Query, StringLower(GUICtrlRead($Combo_Empfang)))


    _IE_Warteschleife("Positionen Endzeit", $oIE)

    If $raus == 44 Or @error Then ExitLoop


    ElseIf $Page_1 = 19 Then ; Error - Work order is not a single installation

    _IE_GUI_Moment()
    Local $Check_code_11of3_Form = _IEFormGetObjByName($oIE, "orderDetails")

    Local $Check_code_11of3_Combo_Empfang_Query = _IEFormElementGetObjByName ($Check_code_11of3_Form, "Work order is not a single installation")
    _IEFormElementOptionSelect ($Check_code_11of3_Combo_Empfang_Query, StringLower(GUICtrlRead($Combo_Empfang)),1 , "byValue")


    _IE_Warteschleife("Positionen Endzeit", $oIE)

    If $raus == 44 Or @error Then ExitLoop

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



    ElseIf $Page_1 = 20 Then

    _IEQuit ($oIE)
    GUIDelete($MomentBitte)
    ExitLoop

    ElseIf $Page_1 = 45 Then

    ; bei Störungen auf der Weboberfläche zB: Error API

    _IEQuit ($oIE)
    GUIDelete($MomentBitte)
    $raus = 45
    ExitLoop

    ElseIf Not $Page_1 Then

    ConsoleWrite(" ElseIf Not $Page_1" & @CR)
    If $Wenn_Page_0_ist == 0 Then

    GUIDelete($MomentBitte)
    $Wenn_Page_0_ist = 1
    EndIf

    If $raus == 44 Or @error Then ExitLoop
    ;ExitLoop

    EndIf

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


    ConsoleWrite(" ganz unten bei wend" & @CR)

    WEnd

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

    Func _IE_GUI_Moment()

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

    #Region ### START Koda GUI section ### Form=
    $MomentBitte = GUICreate("", 292, 68, -1, -1)
    Local $Label1 = GUICtrlCreateLabel("Einen moment bitte...", 16, 24, 103, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    EndFunc

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

    ; $name_wert dient nur als Name für die Unterscheidung in ConsoleWrite
    Func _IE_Warteschleife($name_wert, $oIE_input)

    Local $Wartezeit = 1000
    Local $Wartezeit_1 = 500

    Local $html=_IEDocReadHTML($oIE_input)

    Local $a = 0

    While 1

    Local $html_1=_IEDocReadHTML($oIE_input)
    If @error Then ; bewirkt das bei einem Abbrechen der Webprozeßes der Übergang zum Montagetool ordendlich erfolgt
    $raus = 44
    ExitLoop
    EndIf


    If $html == $html_1 Then
    ConsoleWrite(" If vor Sleep in "&$name_wert&"" & @CR)

    If $a == 0 Then
    ;_IE_GUI_Moment()
    Sleep($Wartezeit)
    GUIDelete($MomentBitte)
    $a = 1
    EndIf


    ConsoleWrite(" If nach Sleep in "&$name_wert&"" & @CR)

    ElseIf $html <> $html_1 Then

    ConsoleWrite(" ElseIf ExitLoop in "&$name_wert&"" & @CR)
    ExitLoop
    Else
    ConsoleWrite(" Else in "&$name_wert&"" & @CR)

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

    EndIf


    Sleep($Wartezeit_1)

    ConsoleWrite(" Am unteren Ende der While bei "&$name_wert&"" & @CR)
    WEnd
    ConsoleWrite(" unter wend in der Warteschleife "&$name_wert&" warten" & @CR)

    EndFunc

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


    Jetzt muss ich dzu sagen das die Internetseite aus 6 Seiten besteht die mit Informationen befüllt werden.
    Und jedes mal wenn man auf Next / Submit klickt gehts halt zur nächsten Seite die dann automatisch mit den
    Informationen die vorher in einer GUI abgefragt wurden befühlt werden.
    Nun habe ich in jeden Case eine art wartenschleife eingebaut in der das Script nach dem befühlen der Input-
    felder der aktuellen Seite wartet bis sich der Quelltext der Seite ändert um dann wieder nachzusehen ob für
    die nächste Seite Informationen in Inputfelder gehören.
    Mein Problem ist nun das ich es bis jetzt nicht geschafft habe zwischen dem klick auf Submit und dem fertigen ausladen
    der nächsten Internetseite eine kleine GUI im Vordergrund stehen zu haben da ja meine kleine Warteschleife verhindert
    das das Script weiterläuft bevor sich der Quelltext verändert. So entsteht momentan der Effekt das diese kleine GUI
    mit dem Namen _IE_GUI_Moment() erst viel zu spät angezeigt wird und somit ihren zweck nicht erfüllen kann.
    Jetzt hab ich mit überlegt wie ich dem Problem begegnen könnte und hab ein wenig zum Thema WinAPI gestöbert und habe mit doch
    tatsächlich etwas basteln können was die linke Maustaste abfängt.
    Daraus hab ich mir dann unter zuhilfename der neuen Autoithilfe von euch hier :) diese beiden Funktionen zusammen geschustert.

    Spoiler anzeigen
    [autoit]

    Func _Funktion_WinApi_Hook_Empfang_Maus_Eingabenachrichten($einODaus=0)

    Local $hmod

    If $einODaus == 1 Then

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

    $hStub_KeyProc = DllCallbackRegister("_KeyProc", "long", "int;wparam;lparam")
    $hmod = _WinAPI_GetModuleHandle(0)
    $hHook = _WinAPI_SetWindowsHookEx($WH_MOUSE_LL, DllCallbackGetPtr($hStub_KeyProc), $hmod)

    Else

    ; Entfernt eine "Hook"-Prozedur die durch eine "Hook"-Kette durch die _WinAPI_SetWindowsHookEx installiert wurde
    _WinAPI_UnhookWindowsHookEx($hHook)
    DllCallbackFree($hStub_KeyProc)

    EndIf


    EndFunc

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

    Func _KeyProc($nCode, $wParam, $lParam)

    Local $tKEYHOOKS

    $tKEYHOOKS = DllStructCreate($tagTBBUTTONINFO, $lParam)

    If $nCode < 0 Then
    Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
    EndIf

    ;ConsoleWrite("Func - _Funktion_WinApi_Hook -- Auserhalb $wParam = " & $wParam & " $tKEYHOOKS " & $tKEYHOOKS & @CRLF)

    If $wParam = 513 Then ; 513 ist der Wert der geliefert wird wenn man die linke Maustaste klickt

    Local $flags = DllStructGetData($tKEYHOOKS, "Param")

    ;ConsoleWrite("Func - _Funktion_WinApi_Hook_Empfang_Maus_Eingabenachrichten -- Der Wert 513 wurde erkannt $wParam = " & $wParam & " $tKEYHOOKS = " & $tKEYHOOKS & @CRLF)
    ConsoleWrite("____________________________________________________________________________" & @CRLF)
    ConsoleWrite("*****Param = " & $flags & @CRLF)
    ConsoleWrite("____________________________________________________________________________" & @CRLF)

    If $flags = "0x7E3693E9" Then ConsoleWrite("0x7E3693E9 wurde als Submit wiedererkannt." & @CRLF)
    ;If $flags = "0x7E3693E9" Then ConsoleWrite("0x7E3693E9 wurde als Next wiedererkannt." & @CRLF)
    ;~ Switch $flags
    ;~ Case $LLKHF_ALTDOWN
    ;~ ConsoleWrite("$LLKHF_ALTDOWN" & @LF)
    ;~ Case $LLKHF_EXTENDED
    ;~ ConsoleWrite("$LLKHF_EXTENDED" & @LF)
    ;~ Case $LLKHF_INJECTED
    ;~ ConsoleWrite("$LLKHF_INJECTED" & @LF)
    ;~ Case $LLKHF_UP
    ;~ ConsoleWrite("$LLKHF_UP: scanCode - " & DllStructGetData($tKEYHOOKS, "scanCode") & @TAB & "vkCode - " & DllStructGetData($tKEYHOOKS, "vkCode") & @LF)
    ;~ EndSwitch
    EndIf

    Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
    EndFunc ;==>_KeyProc

    [/autoit]

    Jetzt bin ich nun soweit das ich es schaffe eine Reaktion zu erzeugen mit der ich aber leider noch nix anfangen kann da ich
    momentan nur mitbekomme das die linke Maustaste geklickt wurde. Aber wie schaffe ich es nun eine Information abzufangen
    die mit eindeutig sagt das es sich um einen Submit -oder Next Button handelt ????


    Ich hoffe ich habe es einigermassen gut beschrieben und würde mich über eine kleine hilfe sehr freuen.

    Danke Euer Jan

  • Ja die Adresse ändert sich. Jetzt hab ich aber noch von einem bekannten einen Tip bekommen.
    Und zwar die Funktion _IEHeadInsertEventScript ( ByRef $o_object, $s_htmlFor, $s_event, $s_script ) .
    Damit werde ich jatzt mal ein wenig rumprobieren.