Autoklick

  • Wie eben im Chat schon gefragt, soll mein Script einen Satz finden und auf ihn klicken.

    Beispiel: Moskito versucht zu programmieren. <- Der Satz ist z.B verlinkt auf eine Internetadresse

    Sobald ich mein Script starte, soll er den Beispielsatz erkennen und auf ihn klicken.

    [autoit]

    Func Klick()
    While 1
    _IELinkClickByText ( $oIE, "Moskito versucht zu programmieren" )
    MouseClick("left")
    sleep (1000)
    send("{BROWSER_REFRESH}")
    sleep (360000)
    WEnd

    [/autoit]
  • naja hast du auch das $oIE erstellt bzw festgelegt?
    und füge doch mal nach dem _IELinkClickByText

    [autoit]

    If @error Then MsgBox(0, "muh", "Fehler bei IELinkClick"&@CRLF&@error)

    [/autoit]

    ein - dann wirst du sehen

  • Das $oIE habe ich als eingebetteten IE. Wie meinst du das mit If @error Then ... danach einfügen ? Kannst du meinen Beispiel Satz einbauen ?

    • Offizieller Beitrag

    Hallo

    send("{BROWSER_REFRESH}") kannst du durch _IEAction ($oIE,"refresh") ersetzen.

    Wird das embedded control wirklich in eine GUI eingebaut, d.h. fügst du es in einer GUI mit GUICtrlCreateObj ein?
    Falls nicht, kann es auch nicht funktionieren.

    Hab dir hier mal ein bsp gemacht:

    Spoiler anzeigen
    [autoit]

    #include <ie.au3>

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

    $oIE = _IECreateEmbedded()

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

    GUICreate("")
    GUICtrlCreateObj($oIE);Ist WICHTIG!

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

    GUISetState() ;Musst du auch nicht zeigen, dass wichtige ist nur, dass GuiCtrlCreateObj angewendet wird!

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_EXIT
    Exit
    EndSwitch
    WEnd

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

    Func Klick()
    While 1
    _IELinkClickByText($oIE, "Moskito versucht zu programmieren")
    MouseClick("left") ;Kann man bestimmt auch ersetzen durch _IENavigate oder sowas.
    _IELoadWait($oIE) ;Wartet bis seite geladen hat, so brauchst du kein Sleep
    _IEAction($oIE,"refresh")
    Sleep(360000)
    WEnd
    EndFunc ;==>Klick

    [/autoit]

    Mfg Spider

  • Vielleicht so?

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <ie.au3>

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

    $oIE = _IECreateEmbedded()

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

    GUICreate("",800,600) ;Einfenster erstellen
    if not IsObj($oIE) then Exit 1 ;wenn es kein Objekt ist ENDE
    GUICtrlCreateObj($oIE,0,0,800,600);Ist WICHTIG!

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

    GUISetState() ;Musst du auch nicht zeigen, dass wichtige ist nur, dass GuiCtrlCreateObj angewendet wird!
    If _IENavigate($oIE,"www.google.de",1) <> -1 then EXIT;Dem Objekt die URL übergeben und warten bis geladen...
    If _IELinkClickByText($oIE, "News",0,1) <> -1 then EXIT ;Auf einen Link klicken und warten bis geladen.....
    AdlibEnable("NeuLaden",10000) ;alle 10 Sek. refresh
    ;~ AdlibEnable("NeuLaden",360000) ;alle 6 Min. refresh

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    AdlibDisable()
    Exit
    EndSwitch
    WEnd

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

    Func NeuLaden()
    _IEAction($oIE,"refresh")
    EndFunc

    [/autoit]

    GtaSpider bei deinem Script hab ich nur Fehler bekommen 8|?(

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)

  • Es geht immer noch nicht.

    Ich benutze ein Script (Privat für mich !) von einem User hier aus dem Forum.
    Das Script soll eine kleine Erweiterung haben.

    hier ist das Script:

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #include <GUIConstants.au3>
    #include <IE.au3>
    #Include <Constants.au3>

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

    Dim $fenstertitel = "Freewar Bot v0.1"

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

    ;Tray Einstellungen und Menüpunkte
    Opt("TrayOnEventMode",1)
    Opt("TrayMenuMode",1)
    Opt("MouseCoordMode",2)
    TraySetClick ( 16 )
    $fensteritem = TrayCreateItem("Fenster ins Tray")
    TrayItemSetOnEvent(-1,"gui_anzeigen")
    TrayCreateItem("")
    $exititem = TrayCreateItem("Exit")
    TrayItemSetOnEvent(-1,"ExitScript")
    TraySetOnEvent ( $TRAY_EVENT_PRIMARYDOWN, "gui_anzeigen" )
    TraySetState()
    ;Tray Ende

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

    ;erstellt den eingebetten IE
    $oIE = _IECreateEmbedded ()

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

    ;Hauptfenster
    $main_window = GUICreate($fenstertitel, @DesktopWidth-8, @DesktopHeight-66, 0, 0, $WS_CAPTION + $WS_SYSMENU + $WS_MINIMIZEBOX + $WS_VISIBLE + $WS_CLIPSIBLINGS )
    GUISetBkColor (0xded3b9)
    $GUIActiveX = GUICtrlCreateObj($oIE, 10, 60, @DesktopWidth-30, @DesktopHeight-200)
    GUISetState(@SW_SHOW,$main_window )

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

    einloggen()

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

    While 1
    sleep(25)
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitScript()
    EndSelect
    WEnd

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

    Func einloggen()
    _IENavigate ($oIE, "http://www.freewar.de")
    _IELoadWait($oIE)
    _IELinkClickByText ( $oIE, "Login Welt 2" )
    _IELoadWait($oIE)
    $oForm = _IEFormGetObjByName ($oIE, "login_form")
    $oQuery = _IEFormElementGetObjByName ($oForm, "name")
    _IEFormElementSetValue ($oQuery, "yyyyyy")
    $oQuery = _IEFormElementGetObjByName ($oForm, "password")
    _IEFormElementSetValue ($oQuery, "xxxxxx")
    sleep(1000)
    ;_IEFormSubmit ($oForm,0)
    ;$oSubmit = _IEFormElementGetCollection ($oForm, 1)
    $oSubmit = _IEFormElementGetObjByName ( $oForm, "submit" )
    _IEAction ($oSubmit, "click")
    _IELoadWait($oIE)
    _IELinkClickByText ( $oIE, "Hier klicken um Freewar ohne Popup zu starten")
    EndFunc

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

    Func Klick()
    While 1
    _IELinkClickByText($oIE, "Im Wasserfall baden")
    MouseClick("left") ;Kann man bestimmt auch ersetzen durch _IENavigate oder sowas.
    _IELoadWait($oIE)
    _IEAction($oIE,"refresh")
    Sleep(360000)
    WEnd
    EndFunc

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

    ;minimiert die GUI in tray und zeigt sie wieder, je nachdem was wie der status gerad ist
    func gui_anzeigen()
    If TrayItemGetText ( $fensteritem ) = "Fenster ins Tray" Then
    GUISetState(@SW_HIDE,$main_window)
    TrayItemSetText($fensteritem,"Fenster maximieren")
    Else
    GUISetState(@SW_SHOW,$main_window)
    TrayItemSetText($fensteritem,"Fenster ins Tray")
    EndIf
    EndFunc

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

    func ExitScript()
    GUIDelete($main_window)
    Exit
    EndFunc

    [/autoit]