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
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
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
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
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
ConsoleWrite(" ganz unten bei wend" & @CR)
WEnd
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 ###
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)
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
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
Func _Funktion_WinApi_Hook_Empfang_Maus_Eingabenachrichten($einODaus=0)
Local $hmod
If $einODaus == 1 Then
$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
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
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