Dies ist eine Absolute beta und kann noch nicht besonders viel aber ist bereits eingeschränkt nutzbar
Was Macht das Tool ?
Kann für IE Links und Buttons sowie Editfeldern das Objekt ermitteln für die weitere verarbeitung
Bisslang wird nur die "Obj Rückgabe" Funktionieren
Und auch nur für Objekte die per ID NAME oder HREF zu finden sind
Geplant ist die Rückgabe aller in IE befindlichen objekte und die Interaggierung mit diesen Objekten
Anleitung:
Internetexplorer Öffnen
Gewünschte Seite Aufrufen
Tool Starten und mit diesem InternetExplorerfenster verbinden lassen ( z.B. über URL oder Titel )
Mit der Maus über einen Link, Button oder Input Fahren und am Numpad " + " drücken
Danach sollte in der der html des Objektes auftauchen, danach einfach auf Code generrieren
Es wird eine Func ( die immer gleich bleibt ) und ein aufruf dieser Funktion welcher das Objet zurückgiebt gennerriert welcher in ein Script eingefügt werden kann
Spoiler anzeigen
#include <IE.au3>
#include <Array.au3>
#include <String.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <TreeViewConstants.au3>
Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]HotKeySet("{NUMPADADD}", "_ItemMark")
[/autoit] [autoit][/autoit] [autoit]Global $oIE
Global $iItems
Global $id = 0, $hGraphic = 0, $uID = 0
Dim $iItems[300000]
$oGui = GUICreate("InfoTool 4 IE by Ezzora", 700, 600, @DesktopWidth - 710, 10)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Gui_Close")
$oGui_Input_AttachString = GUICtrlCreateInput("Google", 5, 5, 300, 21)
$oGui_Combo_AttachMode = GUICtrlCreateCombo("", 310, 5, 150, 21)
GUICtrlSetData(-1, "Titel|WindowTitle|URL|Text|HTML|", "Text")
GUICtrlSetTip(-1, _
"Title = Teil des Titels des Hauptdokuments" & @CRLF & _
"WindowTitle = Teil des gesamten Fenstertitels (anstelle des Dokumenttitels)" & @CRLF & _
"URL = (Standard) Teilstring oder URL der aktuellen Internetadresse" & @CRLF & _
"Text = Teilstring im Text des Bodys der aktuellen Seite" & @CRLF & _
"HTML = Teilstring im HTML des Bodys der aktuellen Seite")
$oGui_Button_AttachStart = GUICtrlCreateButton("Verbinden", 465, 5, 230, 21, $WS_GROUP)
GUICtrlSetOnEvent(-1, "_AttachStart")
$Gui_Obj_Beschreibung = GUICtrlCreateEdit("", 5, 30, 690, 100)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$oGui_Button_Generate_Code = GUICtrlCreateButton("Code Generieren", 465, 375, 230, 21, $WS_GROUP)
GUICtrlSetOnEvent(-1, "_Create_Code")
$Gui_Obj_Code = GUICtrlCreateEdit("", 5, 400, 690, 195)
GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]While 1
Sleep(100)
WEnd
Func _Gui_Close()
Exit
EndFunc ;==>_Gui_Close
Func _AttachStart()
$oIE = _IEAttach(GUICtrlRead($oGui_Input_AttachString), GUICtrlRead($oGui_Combo_AttachMode))
If $oIE = 0 Then
MsgBox(0, "", "Konnte leider nicht zu dem Broser verbinden und starte ihn deshalb")
$oIE = _IECreate("www.google.de")
WinSetTitle($oGui, "", 'IE-Informer: Verbunden zu : " ' & _IEPropertyGet($oIE, "locationname") & ' "')
Else
WinSetTitle($oGui, "", 'IE-Informer: Verbunden zu : " ' & _IEPropertyGet($oIE, "locationname") & ' "')
EndIf ;==>_AttachStart
$iItems = ""
Dim $iItems[300000]
_Search_All_Links($oIE)
_Search_All_Inputs($oIE)
EndFunc ;==>_AttachStart
Func _Search_All_Links($oObj)
$oObjekts = ""
$oObjekts = $oObj.document.getElementsByTagName('A')
For $oObjekt In $oObjekts
$iItems[$uID] = $oObjekt
$uID += 1
Next
EndFunc ;==>_Search_All_Links
Func _Search_All_Inputs($oObj)
$oObjekts = ""
$oObjekts = $oObj.document.getElementsByTagName('Input')
For $oObjekt In $oObjekts
$iItems[$uID] = $oObjekt
$uID += 1
Next
EndFunc ;==>_Search_All_Inputs
Func _ItemMark()
GUICtrlSetData($Gui_Obj_Beschreibung, "Suche Objekt")
$MousePos = MouseGetPos()
GUISetState()
If IsArray($MousePos) Then
For $i = 0 To UBound($iItems) - 1
If IsObj($iItems[$i]) Then
If _IEPropertyGet($iItems[$i], "screenx") < $MousePos[0] And _IEPropertyGet($iItems[$i], "width") + _IEPropertyGet($iItems[$i], "screenx") > $MousePos[0] And _IEPropertyGet($iItems[$i], "screeny") < $MousePos[1] And _IEPropertyGet($iItems[$i], "height") + _IEPropertyGet($iItems[$i], "screeny") > $MousePos[1] Then
GUICtrlSetData($Gui_Obj_Beschreibung, $iItems[$i] .outerHTML)
Return
EndIf
EndIf
Next
EndIf
EndFunc ;==>_ItemMark
Func _Create_Code()
$sObj = GUICtrlRead($Gui_Obj_Beschreibung)
$sObjekt = StringTrimRight(StringTrimLeft($sObj, 1), 1)
$s1 = StringSplit($sObjekt, " ")
$xTag = $s1[1]
For $i = 1 To $s1[0]
If StringInStr($s1[$i], "name=") Then
$xSearch = $s1[$i]
Else
If StringInStr($s1[$i], "id=") Then
$xSearch = $s1[$i]
Else
If StringInStr($s1[$i], "href=") Then
$xSearch = $s1[$i]
Else
EndIf
EndIf
EndIf
Next
$Code = ""
$Code &= "_IEEzzora($oIE,'" & $xTag & "','" & $xSearch & "','Return','0')" & @CRLF & @CRLF
$Code &= ";~~~~~ Funktion _IEEzzora muss nur 1 mal am ende des Scripts eingebunden werden" & @CRLF & @CRLF
$Code &= "Func _IEEzzora($_Obj, $_TagName, $_String, $_Aktion,$_newValue)" & @CRLF
$Code &= " $_Objekts = $_Obj.document.getElementsByTagName($_TagName)" & @CRLF
$Code &= " For $_Objekt In $_Objekts" & @CRLF
$Code &= " If StringInStr($_Objekt.outerHTML, $_String) Then" & @CRLF
$Code &= " If $_Aktion = 'Return' Then Return $_Objekt" & @CRLF
$Code &= " If $_Aktion = 'Click' Then" & @CRLF
$Code &= " $_Objekt.click" & @CRLF
$Code &= " _IELoadWait($_Obj)" & @CRLF
$Code &= " Return True" & @CRLF
$Code &= " EndIf" & @CRLF
$Code &= " If $_Aktion = 'SetValue' Then" & @CRLF
$Code &= " _IEFormElementSetValue($_Objekt,$_newValue)" & @CRLF
$Code &= " Return True" & @CRLF
$Code &= " EndIf" & @CRLF
$Code &= " EndIf" & @CRLF
$Code &= " Next" & @CRLF
$Code &= "EndFunc " & @CRLF
GUICtrlSetData($Gui_Obj_Code, $Code)
EndFunc ;==>_Create_Code
[/autoit] [autoit][/autoit] [autoit]Func _IEEzzora($_Obj, $_TagName, $_String, $_Aktion, $_newValue)
$_Objekts = $_Obj.document.getElementsByTagName($_TagName)
For $_Objekt In $_Objekts
If StringInStr($_Objekt.outerHTML, $_String) Then
If $_Aktion = "Return" Then Return $_Objekt
If $_Aktion = "Click" Then
$_Objekt.click
_IELoadWait($_Obj)
Return True
EndIf
If $_Aktion = "SetValue" Then
_IEFormElementSetValue($_Objekt, $_newValue)
Return True
EndIf
EndIf
Next
EndFunc ;==>_IEEzzora
Suche noch einen Fähigen mitarbeiter
meine Schwächen sind
Regexp und GDI+ welche beide noch benötigt werden
Sollte sich ein Fähiger finden bitte bei mir melden ( PN danach übergebe ich ICQ oder Skypedaten )
Wenn Ihr Fehler findet bitte melden damit ich es verbessern kann, vorschläge sind natürlich auh immer gerne gesehen obwhl die Todo noch Sehr lang ist