Voici le code qui a fonctionné :
Code : Tout sélectionner
[spoiler=]#include <Array.au3>
#include <IE.au3>
#include <String.au3>
_IEErrorHandlerRegister ()
; Ouverture du site
$oIE = _IECreate ("http://www.intranet.fr")
_IELoadWait ($oIE)
; Création du fichier texte de sortie
$FicOut = FileOpen("DTC.txt", 2)
; Check if file opened for reading OK
If $ficOut = -1 Then
MsgBox(0, "Erreur", "Création dtc.txt impossible")
Exit
EndIf
; Gestion de l'indentation
$Espace = 0
; Lancement de la boucle
_Parcourir()
Func _Parcourir()
; variables de suivi en LOCAL pour gestion de l'itération
Local $oTable,$aTableData,$i,$Lien,$ctrl
; tous les liens sont toujours dans une table
$oTable = _IETableGetCollection ($oIE, 0)
; lecture des liens (si colonne 3 contient élément -> lien, sinon simple fichier)
$aTableData = _IETableWriteToArray ($oTable)
; on parcoure tous les liens
For $i = 1 TO UBound($aTableData, 2) - 1
; Si lien on y va, et on indente la sortie
If StringInStr($aTableData[2][$i], 'élément') Then
$Lien = StringStripWS ($aTableData[0][$i], 1)
; on trace le lien et on indente de 2 espaces
FileWriteLine($FicOut, _StringRepeat(" ", $Espace) & $lien)
$Espace += 2
$ctrl = _IELinkClickByText ($oIE, $Lien)
_IELoadWait ($oIE)
If $ctrl = 0 Then ContinueLoop
_Parcourir()
Else
; Sinon on trace les fichiers
$Lien = StringStripWS ($aTableData[0][$i], 1)
FileWriteLine($FicOut, _StringRepeat(" ", $Espace) & $lien)
Endif
Next
; retour arrière dans IE
_IEAction ($oIE, "back")
_IELoadWait ($oIE)
; indentation - 2 espaces.
$Espace -=2
EndFunc
_IEQuit($oIE)
FileClose($FicOut)[/spoiler]
Merci à toi Sylvanie pour ton aide
PS : dans ton code, il s'ouvrait autant de fenêtres que de liens, mais toujours sur la première page !! mais en aveugle, c'était pas évident...