- 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
#cs
Mit Alt+C wechselt ihr zwischen
Link Benutzkarte gesperrt / Link Kalender frei
und
Link Benutzkarte frei / Link Kalender gesperrt
und zurück
#ce
#include <IE.au3>
#Include <Misc.au3>
Global $changed = 0, $mode = 0
; direkte Links
$x = "http://clustrmaps.com/counter/maps.php?url=http://autoit.aufwaerts.de" ; Benutzerkarte
; 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
HotKeySet("!c","change")
[/autoit] [autoit][/autoit] [autoit]$oMSIE = _IECreate ("http://autoit.aufwaerts.de/portal.php")
_SkipForbiddenLink($x)
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
Func change()
$changed = 1
If $mode = 0 Then
$mode = 1
_SkipForbiddenLink($y, 1)
Else
$mode = 0
_SkipForbiddenLink($x)
EndIf
EndFunc
Die Funktion im Anhang.
Edit:
Hab eine Änderung eingefügt. Erst wenn auf den Link geklickt wird springt die Maus zur Mitte.