Probleme beim aktivieren von Fenstern mittels Handles

  • Hallo alle zusammen,

    ich habe eine richtige Beginnerfrage.
    Es geht darum, dass ich zwischen zwei Fenstern hin und her wechseln will, und dabei Handles verwenden, weil sich der Titel des einen Fensters immer wieder ändert.
    Dies gelingt mir aber nicht.

    Zur Klärung, was ich eigentlich tun will:
    Ich habe in einer Excel-Tabelle in einer Spalte URLs stehen und in der Spalte daneben, die Bezeichung der URL.
    Ich möchte die URLs herunterladen und diese unter dem Namen der daneben stehenden Bezeichnung in einem Verzeichnis abspeichern.
    Dazu würde ich immer zwischen der Openoffice und Firefox hin und herwechseln.

    Ich bin auch für andere Vorschläge gerne offen.

    Hier das Skript, das ich geschrieben habe, das aber noch nicht mal auf das Fenster zugreift:
    Ich habe die Loop-Funktion noch nicht eingebaut, wie Ihr seht.
    Die Handles habe ich mit AutoIt V3 Window Info gezogen. Ich habe die Fenster auf nicht nochmal geschlossen, so dass die stimmen müssten.

    [autoit]


    $office = 0x001D04BA
    $fox = 0x002508AC

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

    WinActivate($office)
    Winwaitactive($office)

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

    ;Start Loop
    Send("{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}c{CTRLUP}")
    WinActivate($fox)
    Winwaitactive($fox)

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

    Send("{CTRLDOWN}l{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}v{CTRLUP}{ENTER}")
    WinActivate($office)
    Winwaitactive($office)

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

    Send("{LEFT}{LEFT}{CTRLDOWN}c{CTRLUP}{RIGHT}{RIGHT}{RIGHT}{CTRLDOWN}c{CTRLUP}")

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

    WinActivate($fox)
    Winwaitactive($fox)

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

    Send("{CTRLDOWN}s{CTRLUP}")

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

    WinActivate("Speichern unter","")
    WinWaitActive("Speichern unter","")
    Send("{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}{CTRLUP}{CTRLDOWN}v{CTRLUP}?html{ENTER}")

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

    WinActivate($office)
    Winwaitactive($office)

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

    Send("{DOWN}{LEFT}")

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

    Exit

    [/autoit]


    Ich wäre sehr dankbar, wenn da jemand Licht ins Dunkel bringen könnte.

  • Hey.

    Um Daten von einer bestimmten URL herunterzuladen ist doch keine FF Automatisierung notwendig.
    Fu hast also Die URL und den Localen Speicherort in einer Tabelle abgespeichert, Da kannst du wie AUtobert schon sagte die Funktionssammlung OpenOffice Calc verwenden und um die Daten Herunterzladen kuck dir mal in der Hilfe die Funktion InetGet() an.

    EDIT: zu langsam :(

    mfg Darter

    Das finden von Rechtschreibfehlern muss sofort und unverzüglich dem Autor gemeldet werden. Das eigennützige Verwenden dieser Rechtschreibfehler ist strengstens untersagt und kann mit Freiheitsenzug bestraft werden.

  • Danke Euch für die Antworten.

    INetGet sieht ja nach einer tollen Funktion aus.
    Dann versuche ich das ohne Firefox.

    In ein TextFile kann ich die URLs und die Dateinamen natürlich kopieren. Das ist das Geringste.
    Ich werde mich jetzt mal versuchen einzulesen und probiere es mit INetGet und FileRead

    Ich melde mich dann nochmal zurück.
    Vielen Dank Euch schon mal.

  • Hey.

    Hier noch ein kleines Bsp.

    Spoiler anzeigen
    [autoit]

    $aList = StringSplit(FileRead(@ScriptDir & "\List.txt"),";",2)

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

    For $i = 0 to UBound($aList)-1
    $aTmpList = StringSplit($aList[$i],",",2)
    _InetGet($aTmpList[0],$aTmpList[1])
    Next

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

    Func _InetGet($sURL, $sLocalPath)
    If Not StringRegExp($sURL,'(?i)http://') Then $sURL = 'http://' & $sURL
    If Not StringRegExp($sURL,'www.') Then Return SetError(1,"",-1)
    If Not StringRegExp($sLocalPath,'\..+') Then Return SetError(2,"",-1)
    If StringRegExp($sLocalPath, "(?i)@scriptdir") Then $sLocalPath = @ScriptDir & StringRegExpReplace($sLocalPath,"(?i)@scriptdir","")
    ;~ $sLocalPath = StringRegExpReplace($sLocalPath,"(?i)@scriptdir",@ScriptDir) Funktioniert nicht ka warum ?!?
    InetGet($sURL,$sLocalPath,1)
    EndFunc

    [/autoit]

    mfg Darter

  • Hallo nochmal.

    Also, ich habe mich wie versprochen ein bisschen eingelesen.
    Das ist dabei herausgekommen:


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

    ;Dateidaten festlegen
    $folder = "C:\Ultima\"
    $suffix = ".html"
    $line = 1
    $total = 13845
    $Linkfile = "C:\Ultima\Links.txt"
    $Namefile = "C:\Ultima\Namen.txt"
    $link = FileReadLine ($Linkfile,$line)
    $name = FileReadLine ($NameFile,$line)

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

    ; Durchläufe in Notepad anzeigen
    Run ("notepad.exe")
    WinActivate ("Unbenannt - Editor")
    WinWaitActive ("Unbenannt - Editor")

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

    ;loop
    While ($line <= $total)
    InetGet ($link,$folder&$name&$suffix)
    Send ($line)
    Send ("{Enter}")
    $line += 1
    $link = FileReadLine ($Linkfile,$line)
    $name = FileReadLine ($NameFile,$line)

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

    WEnd

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

    Exit

    [/autoit]

    Eine erste Prüfung mit 50 Durchläufen hat super funktioniert.
    Ich habe auch Tooltips und Traytips ausprobiert. Das hat aber nichts angezeigt, obwohl ich mir sicher bin, dass ich alles richtig eingegeben habe. :(

    Aber ich bin schon sehr glücklich, dass das jetzt geht.
    Das Beispiel von Darter werde ich mir nochmal zu Gemüte führen. Mal schauen, was das kann.

    Nochmals, vielen lieben Dank Euch allen.