[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

Re: [..] Script de manipulation de fichiers

#21

Message par makakiel »

@cutprod

Winliste fais l'équivalent de AWI
Se sont les m^me info que j'avais déjà.
J'au aussi testé un "sleep(60000) avant le winwait active et paf!
toujours rien :)
en faite les sleep on pour effet de compromettre la fin d'exécution du scripte
makakiel
Niveau 3
Niveau 3
Messages : 39
Enregistré le : jeu. 25 nov. 2010 15:34
Status : Hors ligne

Re: [..] Script de manipulation de fichiers

#22

Message par makakiel »

question!
Serait il possible d'utilisé " FileSystemMonitor.au3" pour vérifié la présence d'un nouveau document sur un FTP (avec FTPEX.au3) ?
question subsidiaire ! serait t'il possible que mes problèmes vienne du fait que j'utilise ie6?
mystere
Niveau 4
Niveau 4
Messages : 62
Enregistré le : ven. 26 nov. 2010 22:37
Status : Hors ligne

Re: [..] Script de manipulation de fichiers

#23

Message par mystere »

Erf pour toit, sa viens de ton pc alors, j’ai déjà vus Autoit avoir des bug sur certaine machine alors que le code était bien codé.
Si Autoit reconnais très bien les pop-up.

Voici la méthode qui doit fonctionner. Du moins je n’ai pas eu un seul bug avec cette méthode a condition de bien savoir la maitrisé.

Fait une détection d’image, ici tu fais un screen de la fenêtre que tu attends. Puis enregistre ton image au format bmp pour être sur que sa fonctionne. :!:

Puis remplace

Code : Tout sélectionner

;récupération du fichier
winwaitactive("Téléchargement de fichier","")
send("r")
Par

Code : Tout sélectionner

_WaitForImageSearch("ou tu a enregistrer ton image.bmp",120,0,0,0,0)
sleep(100)
send("!r")
Rajoute aussi a la premier ligne de ton code ceci.

Code : Tout sélectionner

#Include <ScreenCapture.au3>
120 signifie le temps que le scripte va attendre l’image (en seconde donc 2 minutes dans l’exemple)

Le 0 qui suit te retourne la position de l’image, je le mis à 0 car dans ce que tu veut faire on se fout de où est l’image sur l’écran.

Les 2 zéro qui suivent définisse le rectangle dans lequel tu fais tes recherche ici 0,0 pour tout l’écran.

Le dernier zéro t’indique la tolérance de l’image, ici 0 pour définir l’image exacte.

Cette méthode n’est pas la solution idéal pour se que tu veux faire car elle a l’inconvénient de consommé pas mal de ressource au niveau du processeur.

Si nom tu peux aussi essayer de détecté ta fenêtre avec un certain pixel qui doit s’affiché sur la fenêtre dans un rectangle bien précis, sa consomme moins de ressource mais ces pas l’idéal nom plus car si tu change de résolution d’écran tu dois redéfinir le rectangle de recherche.

Je te mets en téléchargeant les fichiers que tu a besoin a placé dans le même répertoire que ton scripte pour plus de facilité.

Essaye aussi de compiler ton scripte par chance sa peut peut-être résoudre ton problèmes.
Modifié en dernier par mystere le mer. 01 déc. 2010 19:14, 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

#24

Message par makakiel »

@mystere ta solution est effectivement infaillible !
Mais ne passe pas dans mon scripte
Je me suis dit c'est pas possible !
alors j'ai placcé des msgbox un peux partout pour voir ou il est rendu au moment du popup

Code : Tout sélectionner

;Navigation 
_IELoadWait($oIE)
_IENavigate($oIE,"https://suppliers.renault.com/ree_cdg/changemenu.do?&menuLevel1=menu1.dechargement")
_IELoadWait($oIE)
_IENavigate($oIE,"https://suppliers.renault.com/ree_cdg/changemenu.do?&menuLevel2=menu2.reception&actionLevel2=RECEPTIONPLAN")
_IELoadWait($oIE)
_IENavigate($oIE,"javascript&#058;submitfrm();")
_IELoadWait($oIE)
_IENavigate($oIE,"javascript&#058;unloadingTXTFile();")
[color=#0000FF]MsgBox(0, "", "Je lance la recherche d'image")[/color]
 
Donc la je lance le scripte et patatra lors du popup d'enregistrement de fichier le message n'apparait toujours pas!
Est il sage de pensé que que l'exécution est toujours au niveau du "_IENavigate($oIE,"javascript:unloadingTXTFile();")" et que tant que l'enregistrement n'as pas été validé il ne passe pas a la ligne suivante ! ?
dont tu as raison AutoIt reconnais très bien les popup (la preuve il reconnait le popup du login au début et le popup pour "enregistré sous" mais celui la pose problème
Je vias tenté de cherché du côté de IE.au3 ou un au3 plus évolué pour Internet Explore si je en trouve rien je vais faire une mise a jours! c'est intolérable que les entreprises de nos jours sois encore sur ie6 ( et ya mm pas de sp3)...
makakiel
Niveau 3
Niveau 3
Messages : 39
Enregistré le : jeu. 25 nov. 2010 15:34
Status : Hors ligne

Re: [..] Script de manipulation de fichiers

#25

Message par makakiel »

serait il possible de faire une boucle qui attendrait l'apparition de cette fenêtre
Serait possible aussi de clické sur le bouton en avec l'include WinAPI?
mystere
Niveau 4
Niveau 4
Messages : 62
Enregistré le : ven. 26 nov. 2010 22:37
Status : Hors ligne

Re: [..] Script de manipulation de fichiers

#26

Message par mystere »

Salut, Pourquoi pas une boucle do ?

Code : Tout sélectionner

do
; Ce que le script doit faire temps qu'il ne détecte pas la fenêtre.
until (winwaitactive("[regexptitle:Readiris]","",2))
; ou 2 représente le temps en seconde, ici dans l'exemple la boucle se répétera toutes les secondes.
Pour cliqué sur un certain bouton de la fenêtre , pourquoi pas un controlclick ?

Code : Tout sélectionner

controlclick("Téléchargement de fichiers","","[classnn:Button2]","","1")
makakiel
Niveau 3
Niveau 3
Messages : 39
Enregistré le : jeu. 25 nov. 2010 15:34
Status : Hors ligne

Re: [..] Script de manipulation de fichiers

#27

Message par makakiel »

Le controlclick et le "send(r)" fonction tout les deux
mon soucis c'est que cette ligne _IENavigate($oIE,"javascript&#058;unloadingTXTFile();")
qui ouvre la fenêtre téléchargement de fichier garde l'exécution tant que je n'ai pas clické sur enregistrer.
Je suppose que le scripte se déroule de la façon suivante :
J'ouvre le fenêtre (arrivé a la ligne en question) J'ouvre un popup et j'attends une réponse avant de continué l'exécution ...
donc o final qu'elle quoi sois la façon que je demande de clické sur le bouton il ne le fait pas car le scripte n'est pas encore a se niveau et sont exécution est bloqué (en attendant un click)
Donc je cherche un moyen de de lancé le click en parallèle
Dans le genre un processe qui surveille l'apparition de cette fenètre en même temps que le scripte se poursuit
Je ne sais même pas si c'est possible en programmation
Sois je fais un seconde scripte juste pour sa !
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [..] Script de manipulation de fichiers

#28

Message par bloodwolff »

Tente

Code : Tout sélectionner

_IENavigate($oIE,"javascript&#058;unloadingTXTFile();"[color=#FF0000],0[/color])
Le script va continuer immédiatement sans attendre que la page sois chargé
Compte skype : bloodwolfff
makakiel
Niveau 3
Niveau 3
Messages : 39
Enregistré le : jeu. 25 nov. 2010 15:34
Status : Hors ligne

Re: [..] Script de manipulation de fichiers

#29

Message par makakiel »

Woooaaaa! excellent!
C'est pour sa que je n'aime pas la programmation de petit détails qui ont toutes leurs importance!
Je vois le bout du tunnel. Merci pour cette bonne astuce!
makakiel
Niveau 3
Niveau 3
Messages : 39
Enregistré le : jeu. 25 nov. 2010 15:34
Status : Hors ligne

Re: [..] Script de manipulation de fichiers

#30

Message par makakiel »

Et sa Marche!
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Script de manipulation de fichiers

#31

Message par Tlem »

N'oubliez pas la balise [R] dans le titre de votre premier message si votre sujet est résolu.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
makakiel
Niveau 3
Niveau 3
Messages : 39
Enregistré le : jeu. 25 nov. 2010 15:34
Status : Hors ligne

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

#32

Message par makakiel »

Le code final et fonctionnel est dans le 1er poste
Merci a tous!
makakiel
Niveau 3
Niveau 3
Messages : 39
Enregistré le : jeu. 25 nov. 2010 15:34
Status : Hors ligne

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

#33

Message par makakiel »

Salut j'ai un petit soucis avec se scripte
Quand la session est verrouillé il ne s'exécute plus! c'est normal ! J'ai peux être raté une option!
Vous avez une piste?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#34

Message par Tlem »

Cette question a été expliquée de nombreuse fois.

Si une session est verrouillée, l'interface graphique est 'mise en pause'. Donc comment voulez-vous qu'un script récupère des informations à partir de l'interface graphique ?
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
makakiel
Niveau 3
Niveau 3
Messages : 39
Enregistré le : jeu. 25 nov. 2010 15:34
Status : Hors ligne

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

#35

Message par makakiel »

En effet ! la poisse! et visiblement le seule moyen est de passé par une vm...
Merci pour cet info

Juste un petit détaille que je ne comprend pas!

quand la session est locker cette partie du scripte arrive a s'exécuter

Code : Tout sélectionner

;Login session
WinWait ($connect2)
ControlSetText($connect2, "", "Edit2", $User )
ControlSetText($connect2, "", "Edit3", $PassWord )
ControlClick ($connect2,"","Button2")
 

Code : Tout sélectionner

sleep(1000)
WinWait ($downConfirm)
WinActivate ($downConfirm)
controlclick($downConfirm,"","Button2")
 
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#36

Message par Tlem »

Surprenant !
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
makakiel
Niveau 3
Niveau 3
Messages : 39
Enregistré le : jeu. 25 nov. 2010 15:34
Status : Hors ligne

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

#37

Message par makakiel »

Ha je ne m'attendais pas a cette réponse!
je vais mêtre de flag pour voir ou sa bloque!

les connexion FTP nikel (en même temps c'est normal )
la connexion au site est réussi
la navigation aussi
Mais! je confirme a l'enregistrement du fichier le script se bloque.
le click sur le bouton enregistrer ne se fait pas!
Janis789
Niveau 1
Niveau 1
Messages : 3
Enregistré le : ven. 01 août 2025 09:35
Status : Hors ligne

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

#38

Message par Janis789 »

Je me permets de rajouter un retour d’expérience, parce que j’ai déjà eu un blocage quasi identique en automatisant un vieux site web sous IE6 avec AutoIt (oui… douleur).

Dans mon cas, le script se plantait pile au moment de l’enregistrement du fichier, exactement comme chez toi. Le reste continuait bizarrement même session verrouillée (ControlSetText / ControlClick OK), mais dès que le popup “Téléchargement de fichier” arrivait, plus rien.
J’avais réglé ça en lançant une petite boucle de surveillance en parallèle via AdlibRegister. Ce n’est pas du vrai multithreading, mais ça m’avait suffi :
AdlibRegister("CheckSavePopup", 500)

Func CheckSavePopup()
If WinExists("Téléchargement de fichiers") Then
ControlClick("Téléchargement de fichiers", "", "Button2")
EndIf
EndFunc

L’idée est simplement de laisser ton script principal poursuivre _IENavigate() pendant qu’AutoIt scrute la fenêtre toutes les 500 ms.
Ce n’est pas hyper propre, mais sur IE6 c’est parfois la seule façon de contourner le blocage quand la navigation JS fige tout.
À l’époque c’est ce qui m’avait enfin permis de récupérer le fichier automatiquement sans devoir rester devant la machine.

Si ça peut t’aider à confirmer où se situe le blocage…
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2283
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

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

#39

Message par jchd »

14 ans plus tard, le blocage prend fin...
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Répondre