[R] Récuperer un Fichier sur un site web avec IE6/7

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
makakiel
Niveau 3
Niveau 3
Messages : 39
Enregistré le : jeu. 25 nov. 2010 15:34
Status : Hors ligne

[R] Récuperer un Fichier sur un site web avec IE6/7

#1

Message par makakiel »

Salut a tous je viens de découvrir cette outils et je dois dire que c'est pas mal du tout pour de l'automatisation de tâche
► Afficher le textetext
Update:
- Code final pour la pstérité

Merci de votre aide
Modifié en dernier par makakiel le mer. 05 janv. 2011 17:46, modifié 13 fois.
makakiel
Niveau 3
Niveau 3
Messages : 39
Enregistré le : jeu. 25 nov. 2010 15:34
Status : Hors ligne

Re: [...] scripte de Manipulation de Fichier

#2

Message par makakiel »

En théorie

Code : Tout sélectionner

WinWait ("Téléchargement de fichier")
ControlClick ("Téléchargement de fichier","","[CLASS:Button; INSTANCE:2]")
dès que la fenêtre Téléchargement de fichier apparait "ControlClick" devrait cliqué sur le Button2 et pourtant il n'en est rien! sois je n'ai rien compris a cette fonction sois j'ai loupé un truck
makakiel
Niveau 3
Niveau 3
Messages : 39
Enregistré le : jeu. 25 nov. 2010 15:34
Status : Hors ligne

Re: [...] scripte de Manipulation de Fichier

#3

Message par makakiel »

Ok je pense comprendre pq
La fenêtre "Téléchargement de fichier" n'apparait pas dans la barre des tâches. Est lié seulement a Internet Explorer.
Fichiers joints
bug.JPG
makakiel
Niveau 3
Niveau 3
Messages : 39
Enregistré le : jeu. 25 nov. 2010 15:34
Status : Hors ligne

Re: [...] scripte de Manipulation de Fichier

#4

Message par makakiel »

J'ai testé sa:

Code : Tout sélectionner

InetGet((_IENavigate($oIE,"javascript:unloadingTXTFile();"),"C:\Temp\It_s_Work.txt")
 
pas très concluant :)
makakiel
Niveau 3
Niveau 3
Messages : 39
Enregistré le : jeu. 25 nov. 2010 15:34
Status : Hors ligne

Re: [...] scripte de Manipulation de Fichier

#5

Message par makakiel »

Nouveau Test:

Code : Tout sélectionner

WinWait ("Téléchargement de fichier")
$hHandle = WinGetHandle ("Téléchargement de fichier")
ControlClick ($hHandle,"","[CLASS:Button; INSTANCE:2]")
 
Toujours pas ça....
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [...] scripte de Manipulation de Fichier

#6

Message par sksbir »

makakiel a écrit :Nouveau Test:

Code : Tout sélectionner

WinWait ("Téléchargement de fichier")
$hHandle = WinGetHandle ("Téléchargement de fichier")
ControlClick ($hHandle,"","[CLASS:Button; INSTANCE:2]")
 
Toujours pas ça....

Bonjour
Plutot que de t'embêter comme ça, regarde les actions possibles de ta fenetre : une lettre est soulignée et indique le raccourci clavier pour faire l'action au clavier ( ALT+r donc ici, je suppose que c'est "enregistrer" que tu veux faire...)

A partir de là, utilise le "AU3 recorder" dispo dans scite pour enregistrer ton action
makakiel
Niveau 3
Niveau 3
Messages : 39
Enregistré le : jeu. 25 nov. 2010 15:34
Status : Hors ligne

Re: [...] scripte de Manipulation de Fichier

#7

Message par makakiel »

Les shorcuts! je n'y avais trop pas pensé! Merci!je vais voir de se côté
makakiel
Niveau 3
Niveau 3
Messages : 39
Enregistré le : jeu. 25 nov. 2010 15:34
Status : Hors ligne

Re: [...] scripte de Manipulation de Fichier

#8

Message par makakiel »

Code : Tout sélectionner

WinWait ("Téléchargement de fichier")
WinActivate ("Téléchargement de fichier")
Send("{ALTDOWN}r{ALTUP}")
 
Non plus!
La fenêtre intitulé "Téléchargement de fichier" n'est pas reconnus!
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [...] scripte de Manipulation de Fichier

#9

Message par Jerome »

Coucou,


Utilise AutoIt Windows Info, compris dans le dossier d'installation, sa te donnera plus de piste :)





Jérôme
makakiel
Niveau 3
Niveau 3
Messages : 39
Enregistré le : jeu. 25 nov. 2010 15:34
Status : Hors ligne

Re: [...] scripte de Manipulation de Fichier

#10

Message par makakiel »

Je l'ai utilisé pour connaitre "l'ID" du bouton.
dans le cas présent la fenètre est un "pop up" une fenêtre enfant de internet explorer
se que je n'e comprend pas c'est que

La:

Code : Tout sélectionner

;connexion au site
WinWait ("Connecter à")
ControlSetText("Connecter à ", "", "Edit2", $User )
ControlSetText("Connecter à", "", "Edit3", $PassWord )
ControlClick ("Connecter à","","Button2")
 
c'est uassi un pop up pour la connexion au site web ça passe sans soucis

mais la :

Code : Tout sélectionner

;Click sur le bouton enregistre de la fenêtre téléchargement de fichier 
WinWait ("Téléchargement de fichier")
WinActivate ("Téléchargement de fichier")
Send("{ALTDOWN}r{ALTUP}")
 
Il ne se passe rien!

Code : Tout sélectionner

sleep(20)
_IENavigate($oIE,"javascript:unloadingTXTFile();")
 
Après l'exécution de cette ligne IE demande au site de généré un fichier
en réponse ie a un fichier a téléchargé et donc il ouvre une fenêtre.
L'ouverture de cette fenêtre est totalement aléatoire
Ke songe a inclure du VBS dans se code!
makakiel
Niveau 3
Niveau 3
Messages : 39
Enregistré le : jeu. 25 nov. 2010 15:34
Status : Hors ligne

Re: [...] scripte de Manipulation de Fichier

#11

Message par makakiel »

Donc je clique manuellement sur le bouton!
et la le scripte il continue!
Il écrit le nom du fichier mais la sa re-bloque et ne termine pas l'enregistrement
mystere
Niveau 4
Niveau 4
Messages : 62
Enregistré le : ven. 26 nov. 2010 22:37
Status : Hors ligne

Re: [...] scripte de Manipulation de Fichier

#12

Message par mystere »

Salut makakiel, IL y a une erreur dans ce code.
;Click sur le bouton enregistre de la fenêtre télé hargement de fichier
WinWait ("Téléchargement de fichier")
WinActivate ("Téléchargement de fichier")
Send("{ALTDOWN}r{ALTUP}")
Pour faire ALT + R, il faut faire.

Code : Tout sélectionner

Send("!r")
Pour renommer ton fichier a la date et a l’heur du jour, essaye d’abord de retrouvé les valeurs de ton pc qui je pense doit être a l’heur. Essaye ce code.

Code : Tout sélectionner

$jour=@yday
$date=@year 
$heur=@hour
$min=@min
$sec=@sec
msgbox(0,"test",$jour)
msgbox(0,"test",$date)
msgbox(0,"test",$heur)
msgbox(0,"test",$min)
msgbox(0,"test",$sec)
Puis pour renommé le fichier télécharger essaye ce code que je n’ai pas testé mais qui je pense fonctionne.

Code : Tout sélectionner

filecopy("C:\Temp\It_s_Work.txt",”ton dossier ou tu veux enregistrer est fichier\" & $jour & $date & $heur & $sec & ".txt")
makakiel
Niveau 3
Niveau 3
Messages : 39
Enregistré le : jeu. 25 nov. 2010 15:34
Status : Hors ligne

Re: [...] Script de manipulation de fichiers

#13

Message par makakiel »

@ mystere: Merci infiniment pour cette aide que tu m'apportes.
Pour le changement de nom du fichier c'est exactement se que j'ai fait mais sans utilisé de variable

Code : Tout sélectionner

filecopy("C:\Temp\It_s_Work.txt",”ton dossier ou tu veux enregistrer est fichier\" & @yday & @year ....)
 
oui ce n'est pas très propre je vais corrigé tout sa !
makakiel
Niveau 3
Niveau 3
Messages : 39
Enregistré le : jeu. 25 nov. 2010 15:34
Status : Hors ligne

Re: [...] scripte de Manipulation de Fichier

#14

Message par makakiel »

mystere a écrit :Salut makakiel, IL y a une erreur dans ce code.
;Click sur le bouton enregistre de la fenêtre télé hargement de fichier
WinWait ("Téléchargement de fichier")
WinActivate ("Téléchargement de fichier")
Send("{ALTDOWN}r{ALTUP}")
Pour faire ALT + R, il faut faire.

Code : Tout sélectionner

Send("!r")
Pour renommer ton fichier a la date et a l’heur du jour, essaye d’abord de retrouvé les valeurs de ton pc qui je pense doit être a l’heur. Essaye ce code.

Code : Tout sélectionner

$jour=@yday
$date=@year 
$heur=@hour
$min=@min
$sec=@sec
msgbox(0,"test",$jour)
msgbox(0,"test",$date)
msgbox(0,"test",$heur)
msgbox(0,"test",$min)
msgbox(0,"test",$sec)
Puis pour renommé le fichier télécharger essaye ce code que je n’ai pas testé mais qui je pense fonctionne.

Code : Tout sélectionner

filecopy("C:\Temp\It_s_Work.txt",”ton dossier ou tu veux enregistrer est fichier\" & $jour & $date & $heur & $sec & ".txt")
Le soucis c'est que mon WinWaite ne marche pas!
je cherche des solutions alternative
makakiel
Niveau 3
Niveau 3
Messages : 39
Enregistré le : jeu. 25 nov. 2010 15:34
Status : Hors ligne

Re: [...] Script de manipulation de fichiers

#15

Message par makakiel »

Existe t'il un autre moyen pour définir une fenêtre a part le Title?
makakiel
Niveau 3
Niveau 3
Messages : 39
Enregistré le : jeu. 25 nov. 2010 15:34
Status : Hors ligne

Re: [...] Script de manipulation de fichiers

#16

Message par makakiel »

Dernière modification du scripte.
en rouge se qui ne fonctionne pas en auto
mystere
Niveau 4
Niveau 4
Messages : 62
Enregistré le : ven. 26 nov. 2010 22:37
Status : Hors ligne

Re: [...] Script de manipulation de fichiers

#17

Message par mystere »

Salut makakiel, voici comment ont défini une fenêtre (copier collé sur la doc Autoit ^^).

TITLE - Le titre de la fenêtre
CLASS - Le nom de la class interne à window (classname)
REGEXPTITLE -cLe titre de la fenêtre en utilisant une expression régulière (Si l'expression régulière est fausse alors @error sera fixé à 2)
REGEXPCLASS - Classname d'une fenêtre utilisant une expression régulière
LAST - La dernière fenêtre utilisée dans une commande précédente de AutoIt
ACTIVE - La fenêtre courrante active
X \ Y \ W \ H - La position et la taille d'une fenêtre.
INSTANCE - La première instance lorsque toutes les propriétées correspondes

Asseye

Code : Tout sélectionner

WinWaitActive("[regexptitle:fichier]")
ou

Code : Tout sélectionner

WinWaitActive ("[regexptitle:Téléchargement]")
:!: Fait attention à ne pas avoir d’autre fenêtre ouvert avec le mot Téléchargement ou fichier car sa peut prêter a confusion.

Mais normalement Autoit doit reconnaitre ta fenêtre mais sa dois venir certainement du fichier hook de Windows qui n’est pas fait pour Autoit

Autoit doit faire ton alt + R mais il doit le faire trop to avant même que la fenêtre soit opérationnelle pour recevoir des commande. Fait un petit

Code : Tout sélectionner

sleep(10000)
Pour voir si ces bien sa. Si sa fonctionne a toi âpres de bien ajusté ton sleep entre performance et bug ou latence de Windows.

Si sa fonctionne toujours pas met nous au courant, j’ai une autre solution qui fonctionne à coup sur, mais bon ces contourné le problème et nom le surmonté. Mais âpres sa doit venir soit de toi soit de ton pc. :arrow:

PS pourquoi tu t'embete avec un

Code : Tout sélectionner

WinGetTitle("Téléchargement de fichier")
?

Fait directement

Code : Tout sélectionner

winwaitactive("Téléchargement de fichier","")
sleep(500)
send("^!r")
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

Re: [..] Script de manipulation de fichiers

#18

Message par cutprod »

Sinon tu peux essayer la fonction "WinList" et exploiter dans le résultat =
$array[1][0] = 1st window title
$array[1][1] = 1st window handle (HWND)
Ce sera ta fenêtre active (celle du téléchargement)
Regarde aussi ce post =
http://autoitscript.fr/forum/viewtopic.php?f=3&t=6139
Cut, srcipteur du dimanche...désolé !-)
makakiel
Niveau 3
Niveau 3
Messages : 39
Enregistré le : jeu. 25 nov. 2010 15:34
Status : Hors ligne

Re: [..] Script de manipulation de fichiers

#19

Message par makakiel »

@mystere
J'ai testé ta méthode
il semble que le winwait sois pris en conte une fois fois que j'ai manuelle envoyé fait le Alt+R
J'ai mis une un msgbox pour voir q qu'elle moment c'est pris en conte.
et il semble bien que l'affichage du pop up ne sois pas pris en compte par AutoIt.
Une fois que je clic sur le le bouton"enregistré" le script continue a sé déroulé sans problème!
J'ai un bug avec cette fenêtre de IE
Modifié en dernier par makakiel le mar. 30 nov. 2010 09:36, modifié 1 fois.
makakiel
Niveau 3
Niveau 3
Messages : 39
Enregistré le : jeu. 25 nov. 2010 15:34
Status : Hors ligne

Re: [..] Script de manipulation de fichiers

#20

Message par makakiel »

JE l'ai enfermé dans un boulce.

Code : Tout sélectionner

Do
winwaitactive("Téléchargement de fichier","")
sleep(600)
send("^!r")
    If @error Then
        MsgBox(0, "Error", "Save Cancelled - Give the file a name")
        $flag = 1
    Else
        $flag = 0
    EndIf   
Until ($flag = 0)
 
sans résultat concluant...
Car il n'y a pas d'erreur juste un warning pour dire "hum il semble que winwaite attend déjà depuis un bon moment"
Répondre