Page 1 sur 1
[R] Une curiosité IE
Posté : dim. 10 févr. 2008 22:19
par Ahbadiane
Ce que je veux faire : enregistrer une page WEB dans IE au format TXT dans un fichier c:\temp\test\test.txt
Code : Tout sélectionner
; sous IE ouverture de la fenêtre "Enregistrer la Page Web"
Send("!F")
Send("r")
; attendre que la fenêtre soit ouverte et encore 1/2 seconde
WinWaitActive("Enregistrer la page Web")
Sleep(500)
Send("c:\temp\test\test.txt")
….
Le problème : les \ (backslash) ne sont pas envoyés dans le champ "Nom du fichier" et j'obtiens l'enregistrement du fichier sous le nom "c:temptesttest.txt"
Ce problème ne se produit que sur mon PC sous Windows XP pro 2002 service pack 2 et IE 7.0.5730.11
Je n'ai pas de problème sur un autre PC sous Vista et IE 7.0.6000 et si je fais la même chose manuellement ça marche également
Est-ce que quelqu'un aurait une idée sur ces backslashs fugueurs ?
Re: [..] Une curiosité IE
Posté : lun. 11 févr. 2008 01:21
par arrkhan
et bien en fait ils ne sont pas fugueurs, mais tout simplement interdit dans les nom de fichiers sous windows, et la fenetre te demandant le nom du fichier considere donc que tu veux sauvegarder a l'endroit par defaut en utilisant ton chemin moins les BS... CQFD ^^
Re: [..] Une curiosité IE
Posté : lun. 11 févr. 2008 08:49
par Ahbadiane
arrkhan a écrit :et bien en fait ils ne sont pas fugueurs, mais tout simplement interdit dans les nom de fichiers sous windows, et la fenetre te demandant le nom du fichier considere donc que tu veux sauvegarder a l'endroit par defaut en utilisant ton chemin moins les BS... CQFD ^^
Bonjour arrkhan,
Les \ ne sont pas interdits en saisie, d'ailleurs comme je le notais dans mon message, ils sont acceptés en saisie manuelle et sur un autre PC.
Non je pense qu'il y a un Pb entre le Send() d'AutoIt et cet écran, mais je sais vraiment pas pourquoi
Re: [..] Une curiosité IE
Posté : lun. 11 févr. 2008 10:47
par ani
bonjour
je ne pourrais expliquer le pourquoi du comment il faut utiliser les \\ au lieu de \
on trouve défois dans le regédit ce double slash

mais c'est windows
Send("c:\\temp\\test\\test.txt")
la question c'est pour la curiosité ou l'enregistrement d'une page web vers un fichier texte ?
Re: [..] Une curiosité IE "Enregistrer sous"
Posté : mar. 12 févr. 2008 08:12
par Ahbadiane
Bonjour ani,
Les doubles slash ne résolvent pas mon problème
Le problème ne vient pas du chemin Windows mais de la commande Send("c:\temp\test\test.txt") qui n'envoi pas les \ dans la fenêtre IE "Enregistrer sous" et ceux ceci que sur une machine. Je pense que le problème vient plutôt d'IE !?
Re: [..] Une curiosité IE
Posté : mar. 12 févr. 2008 08:22
par Ahbadiane
Rebonjour,
A la question d'Ani "Enregistrer une page Web en texte" : Cette page contient des informations de reporting, des centaines d'informations que je vais ensuite rechercher dans le fichier texte sauvegardé. Même si je l'enrtegistre au format HTML, j'aurai toujours le problème des slash qui ne sont pas envoyés dans l'interface.
J'ai une question : Existe-t-il un moyen de sauvegarder une page WEB autrement qu'au travers de l'interface d'IE (choix "Enregistrement sous") ? une commande AutoIt ?
Re: [..] Une curiosité IE
Posté : mar. 12 févr. 2008 10:27
par Tlem
Il serait peut-être plus simple que vous récupériez les informations directement avec AutoIt.
Regarder les liens suivant (Peut-être pourront-il vous aider) :
http://www.autoitscript.fr/viewtopic.php?f=3&t=93
http://www.autoitscript.fr/viewtopic.php?f=3&t=350
http://www.autoitscript.fr/viewtopic.php?f=3&t=410
Je vous conseil aussi la lecture de l'aide de AutoIt en recherchant ce qui à un rapport avec
_IE...
Edit : Sinon autre solution :
http://www.autoitscript.com/forum/index ... st&p=21348
Re: [R] Une curiosité IE
Posté : mar. 12 févr. 2008 16:46
par Ahbadiane
Bonjour Tlem,
La solution est bien de faire l'enregistrement du Body de la page WEB avec _IEBodyReadText
Code : Tout sélectionner
$sText = _IEBodyReadText ($oIE)
$file = FileOpen ( "c:\temp\test\test.txt", 2)
FileWriteLine($file, $sText)
FileClose($file)
Cette solution est d'ailleurs plus "sécurisée" que d'envoyer des commandes Send() dans une interface utilisateur
Merci à tous