[R] Lister tous les onglets FIREFOX

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

[R] Lister tous les onglets FIREFOX

#1

Message par franco »

Bonjour.

Pour un projet, j'ai décidé d'envoyer le lien de l'onglet actuel de firefox sur mon mail : j'y arrive.
Grâce à ce lien : https://www.autoitscript.com/forum/topi ... ent=805551

Maintenant, j'essaye de lister tous les onglets (le lien de chaque onglet) firefox : et là, je coince.

J'ai décidé d'utiliser l'include FF.au3 pour cela. Celui-ci : https://www.autoitscript.com/forum/topi ... v0601b-15/
Et m'étais inspiré de ceci : http://www.thorsten-willert.de/index.ph ... /beispiele

Surtout ces scripts exemples :
http://www.thorsten-willert.de/media/me ... GetAll.au3
http://www.thorsten-willert.de/media/me ... oArray.au3

Bref, je n'y arrive pas...


Du coup, j'ai procédé autrement :
1. Je détecte Firefox via un WinActivate (un peu élaboré ^^)
2. Je détecte le titre de l'onglet actuel.
3. Je récupère l'adresse de l'onglet : Send("^l") pour sélectionner le lien complet et Send("^c") pour le copier dans le presse papier
4. Je sauvegarde le contenu du presse papier (donc le lien de l'onglet) dans un fichier.
5. Je bascule vers l'onglet suivant et réitère l'opération, tout en détectant à nouveau le titre de la fenêtre (donc l'onglet)
6. Et si le titre de départ (cf 2.) est identique au dernier (cf 5.), je quitte la boucle.

Voici le code :

Code : Tout sélectionner

#include <file.au3>

Local $oTitle = "", $Title = "", $LinkTab = ""
$FileTab = @TempDir & "\onglets.txt"
$FT = FileOpen($FileTab, 2)

Local $aList = WinList()
For $i = 1 To $aList[0][0]
	If StringInStr($aList[$i][0], "Mozilla Firefox") Then $oTitle = $aList[$i][0]
Next
$oTitle_ = StringReplace($oTitle, ' - Mozilla Firefox', '')

If $oTitle = "" Then
	FileDelete($FileTab)
	Exit
EndIf

While 1

	If BitAND(WinGetState($oTitle), 16) Then WinSetState("[Title:" & $oTitle & "]", "", @SW_MAXIMIZE)
	WinActivate($oTitle, "")
	Sleep(1000)
	Send("^l")
	Send("^c")
	FileWriteLine($FT, $oTitle_ & "  -  " & ClipGet())
	Sleep(100)
	Send("^{TAB}")
	Sleep(100)

	Local $bList = WinList()
	For $i = 1 To $aList[0][0]
		If StringInStr($bList[$i][0], "Mozilla Firefox") Then $Title = $bList[$i][0]
	Next
	$oTitle_ = StringReplace($Title, ' - Mozilla Firefox', '')

	If $Title = "" Then ExitLoop
	If $Title = $oTitle Then ExitLoop

WEnd
FileClose($FT)
If FileExists($FileTab) Then ShellExecute($FileTab)
Ce code fonctionne.

Ma question : existe-t-il un moyen plus simple de lister tous les onglets de Firefox ?
Si oui, donnez moi des pistes, svp, pour que je puisse tester. ;)

j'avais vu ce lien ( What Tabs Are Open In Firefox ), mais quand on a plusieurs profils, et que le profil par défaut ne contient pas .default, c'est mort ^^
Et même si le dossier content .default, ça ne fonctionne pas non plus.


Un grand merci à tous.
Et bonne soirée.
++
Modifié en dernier par franco le mer. 07 sept. 2016 18:53, modifié 1 fois.
L'entraide, c'est mon dada ;)
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Lister tous les onglets FIREFOX

#2

Message par orax »

> Ma question : existe-t-il un moyen plus simple de lister tous les onglets de Firefox ?
Je ne sais pas quel est Il y a des extensions pour Firefox qui pourraient faire ça. Moi, par exemple, pour récupérer l'URL de plusieurs onglets, j'utilise Multiple Tab Handler.

D'après ce que j'ai compris dans la doc de FF.au3, _FFTableWriteToArray c'est pour les tableaux HTML (<table>), ce n'est pas pour les onglets.
Et _FFLinksGetAll je pense que c'est pour récupérer les liens de la page active.

:idea: Voir _FF_TabGetAllTitles et _FF_TabGetAllURLs dans dans FFEx.au3.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Lister tous les onglets FIREFOX

#3

Message par franco »

Salut.

Premièrement : un GRAND merci pour l'extension Firefox.
Qui me satisfait pour une autre question que je n'ai pas encore poisé. :mrgreen:

Complet, j'apprécie : encore merci.
:idea: Voir _FF_TabGetAllTitles et _FF_TabGetAllURLs dans dans FFEx.au3.
Alors là, encore un GRAND merci.

C'est une sacrée piste.

J'y vais de ce pas. ;)

PS : je ne connais pas cet UDF ;)


++
L'entraide, c'est mon dada ;)
amphase
Niveau 3
Niveau 3
Messages : 40
Enregistré le : mar. 30 août 2016 00:28
Status : Hors ligne

Re: [..] Lister tous les onglets FIREFOX

#4

Message par amphase »

Pour fonctionner, l'include FF.au3 nécessite impérativement que l'extension pour Firefox MozRepl soit installée et lancée.
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Lister tous les onglets FIREFOX

#5

Message par franco »

Salut.

Merci de vos réponse. :)

Et vu que FFEx.au3 a besoin de FF.au3, donc toujours besoin de MozRepl. ;)
Il est déjà paramétré pour qu'il se lance automatiquement au démarrage de Firefox.

J'ai bien sur télécharger FFEx.au3 et FF.au3, ici : http://www.thorsten-willert.de/index.ph ... oit/ff-au3

J'ai fait ce petit code :

Code : Tout sélectionner

#include <FFEx.au3>
#include <array.au3>
$a =_FF_TabGetAllURLs()
_ArrayDisplay($a)
Et une erreur survient, dans FF.au3... :s
__FFSend ==> Socket Error
"C:\Users\tomce\Desktop\SendTabLink\FF.au3" (2365) : ==> Variable used without being declared.:
SetError(__FFError($sFuncName, $_FF_ERROR_RetValue, $sRet))
SetError(__FFError($sFuncName, $_FF_ERROR_RetValue, ^ ERROR
Et en visualisant FF.au3, c'est lié (?) à la fonction
► Afficher le texte_FFCmd
ou à la fonction
► Afficher le texte__FFSend
Bref, j'y perd mon latin et mon français. :mrgreen:

Une idée de l'erreur que j'ai pu commettre ?
Que dois-je donc encore modifié sur l'include FF.au3 ou FFEx.au3 ?


@+ et bonne jourée.

Cordialement,
Thomas.
L'entraide, c'est mon dada ;)
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Lister tous les onglets FIREFOX

#6

Message par franco »

Lu'

Bon, résolu...

J'ai totalement zappé que pour afficher les onglets de Firefox, faut d'abord utiliser _FFConnect()
:oops:

Code : Tout sélectionner

#Include <FFEx.au3>
_FFConnect()
 _ArrayDisplay(_FF_TabGetAllURLs())
Et là, ça fonctionne.

Du coup, me reste plus qu'à faire une boucle pour récupérer le contenu du tableau.


(que je suis crétin parfois ^^).


En tout cas merci !
++
L'entraide, c'est mon dada ;)
Répondre