Links auf IE - Site sperren

    • Offizieller Beitrag

    Hi,
    nachdem ich lange genug und mit eurer Unterstützung gegrübelt habe, konnte ich das Problem nun lösen.
    Das Ergebnis habe ich gleich in eine UDF verpackt. Vielleicht kann es ja noch jemand brauchen.
    Hier ein Muster zum Probieren:

    Spoiler anzeigen
    [autoit]


    #cs
    Mit Alt+C wechselt ihr zwischen
    Link Benutzkarte gesperrt / Link Kalender frei
    und
    Link Benutzkarte frei / Link Kalender gesperrt
    und zurück
    #ce

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

    #include <IE.au3>
    #Include <Misc.au3>
    Global $changed = 0, $mode = 0

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

    ; direkte Links
    $x = "http://clustrmaps.com/counter/maps.php?url=http://autoit.aufwaerts.de" ; Benutzerkarte

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

    ; http://autoit.aufwaerts.de/calendar.php?sid=
    ; da "sid" bei jedem Aufruf wechselt, für solche Links:
    $y = "http://autoit.aufwaerts.de/calendar.php?" ; Kalender

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

    HotKeySet("!c","change")

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

    $oMSIE = _IECreate ("http://autoit.aufwaerts.de/portal.php")
    _SkipForbiddenLink($x)

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

    Func _SkipForbiddenLink($ForbiddenLink,$Part=0)
    Local $Link
    AutoItSetOption("WinTitleMatchMode", 2)
    If $changed = 1 Then $changed = 0 ; nur für Test zum Umschalten
    While 1
    $Link = StatusbarGetText("Internet Explorer")
    If $Link <> "" Then
    If $Part = 0 Then ; kpl. Link angegeben
    If $Link = $ForbiddenLink And _
    ( _IsPressed("01") Or _IsPressed("02")) Then MouseMove(@DesktopWidth/2, @DesktopHeight/2, 0)
    Else ; Teil des Links angegeben
    If StringInStr($Link, $ForbiddenLink) And _
    ( _IsPressed("01") Or _IsPressed("02")) Then MouseMove(@DesktopWidth/2, @DesktopHeight/2, 0)
    EndIf
    EndIf
    Sleep(100)
    ; If Not WinExists("Internet Explorer") Then Exit ; Original in der Funktion
    If Not WinExists("Internet Explorer") Or $changed = 1 Then Exit ; nur für Test zum Umschalten
    WEnd
    EndFunc

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

    Func change()
    $changed = 1
    If $mode = 0 Then
    $mode = 1
    _SkipForbiddenLink($y, 1)
    Else
    $mode = 0
    _SkipForbiddenLink($x)
    EndIf
    EndFunc

    [/autoit]


    Die Funktion im Anhang.

    Edit:
    Hab eine Änderung eingefügt. Erst wenn auf den Link geklickt wird springt die Maus zur Mitte.