[..] Fin de boucle quand un fichier est sauvegardé en entier

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
aubais30
Niveau 1
Niveau 1
Messages : 11
Enregistré le : mar. 03 janv. 2012 10:34
Status : Hors ligne

[..] Fin de boucle quand un fichier est sauvegardé en entier

#1

Message par aubais30 »

Bonjour à toutes et à tous

Mon but : Ouvrir des pdf contenu dans une base de données grâce à Acrobat reader, les sauvegarder dans un endroit donnée et passer à l'enregistrement suivant dans ma base de donnée.
Mon souci : Le délais d'ouverture et de sauvegarde du pdf varie selon sa taille (ou autre chose d'ailleurs ...)

Donc si quelqu'un peu me donner un tuyau ;)

Bertrand

Ce que j'ai actuellement et qui ne fonctionne pas ... :

Code : Tout sélectionner

for $i=1 to 10

    ;Donner le Focus à Filemaker
    WinActivate("FileMaker Pro Advanced")
    ;Verifier que Fmp est bien actif
    
    WinWaitActive("FileMaker Pro Advanced")
    Send("^1")
    Send("!s")
    Send("{down}")
    Send("{enter}")
    sleep(1000)
; Ici Acrobat doit se lancer et ouvrir le pdf
    ;Donner le Focus à Acrobat
    WinWaitActive("[CLASS:AcrobatSDIWindow]")
    MouseClick("left",1505,538,2)
    Send("+^s")
    sleep(500)
    Send("^v")
    Send("{enter}")
    sleep(1000)

    While Not FileExists(ClipGet())
    sleep(500)
    WEnd
    WinClose("[ACTIVE]", "")
next
J'ai également essayé avec une boucle mais c'est encore pire (certainement du à une erreur de ma part ....

Code : Tout sélectionner

for $i=1 to 10

    ;Donner le Focus à Filemaker
    WinActivate("FileMaker Pro Advanced")
    ;Verifier que Fmp est bien actif
    WinWaitActive("FileMaker Pro Advanced")
    ;Lancer le script via le menu script (Ctrl  ne fonctionne pas ?)
    Send("^1")
    Send("!s")
    Send("{down}")
    Send("{enter}")
    ;Local $Var = ClipGet()
    sleep(1000)

    ;Donner le Focus à Acrobat
    WinWaitActive("[CLASS:AcrobatSDIWindow]")
    MouseClick("left",1505,538,2)
    Send("+^s")
    sleep(500)
    Send("^v")
    Send("{enter}")
    sleep(1000)

    For $a =1 To 5
        If FileExists(Clipget())Then
            sleep(1000)
            $a = 5
            WinClose("[ACTIVE]", "")
        Else
            sleep(1000)
            $a = $a+1
        EndIf
    Next



next
MsgBox(0, "Export", "Export terminé!")
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..]Fin de boucle quand un fichier est sauvegardé en ent

#2

Message par jchd »

Attention, reposer sur des Send et MouseClick va _obligatoirement_ provoquer un désastre à un moment ou un autre, du fait de la première loi de l'EUM.

Perso, j'emploierais le pilote ODBC de FileMaker Pro pour taper dans la base et faire sous AutoIt ce qu'il y a à faire en toute sécurité, avec traitement d'erreur et gilet pare-balle.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

Re: [..]Fin de boucle quand un fichier est sauvegardé en ent

#3

Message par DimVar »

N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
aubais30
Niveau 1
Niveau 1
Messages : 11
Enregistré le : mar. 03 janv. 2012 10:34
Status : Hors ligne

Re: [..] Fin de boucle quand un fichier est sauvegardé en en

#4

Message par aubais30 »

Bonjour,

Pour plusieurs raison je ne peux pas utiliser ODBC, j'ai reussi à faire quasi tout comme je le souhaitais mais il reste ce probleme de variabilité de temps d'ouverture du pdf
Existe t il une solution pour redémarrer (continuer) le script qu'une fois le document ouvert ?


Merci et bon week end

Bertrand
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

Re: [..] Fin de boucle quand un fichier est sauvegardé en en

#5

Message par DimVar »

Bonjour,

En connaissant le poids du fichier source avant, il est possible de boucler jusqu’à ce que le poids du fichier cible soit atteint.

Cdlt.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Répondre