[..] Comment lancer un script en mode silencieux

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
oliviernouhi
Niveau 1
Niveau 1
Messages : 10
Enregistré le : jeu. 23 févr. 2012 11:30
Status : Hors ligne

[..] Comment lancer un script en mode silencieux

#1

Message par oliviernouhi »

Bonjour,

J'ai un petit script qui se connecte à mon ftp et supprime un fichier X puis colle un autre fichier Y.
Le script prend 8-10 secondes.

Cependant, quand le script s'exécute, il est en premier plan sur mon PC, du coup je ne peux rien faire d'autre.

Y a t'il un moyen de le faire de façon "silencieux", en arrière plan, ou en service ? ( sachant que j'ai FileZilla qui s'ouvre via mon script)

Voici mon script :

Code : Tout sélectionner

$Pid = Run("C:\Program Files\FileZilla FTP Client\filezilla.exe") ; lancer le prog
WinWaitActive("FileZilla") ; attendre le prog se lance
WinSetOnTop("FileZilla", "", 0) ; mettre le prog en premier plan
;Sleep(2000) ; wait 2 sec

Send("nom_ftp")
Send("{TAB}")
Send("user_ftp")
Send("{TAB}")
Send("password_ftp")
Send("{TAB}")
Send("21")
Send("{TAB}"&@CRLF) ; tab ET enter
Send("{ESC}")

Sleep(1000) ; wait 1 secs

Send("{TAB 3}") ;
Send("C:\Users\onouhi\Desktop"&@CRLF)
Send("{ESC}")

Sleep(1000)
Send("{TAB 5}") ;
Send("{DOWN 6}") ;
Send("{DEL}"&@CRLF) ;
Send("{ESC}")

Sleep(1000)
Send("{TAB 6}") ;

Send("{DOWN 3}") ;

Sleep(1000)
Send(@CRLF)

Sleep(1000)
Send(@CRLF)

Sleep(1000)
Send("{ESC}")

Sleep(1000)
ProcessClose($pid) ; close le prog
Merci d'avance pour vos réponses/aides/conseils.

Olivier
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [..] Comment lancer un script en mode silencieux

#2

Message par TopXm »

Salut,
A mon humble avis ça va pas le faire avec du Send (voir l'aide)
Sends simulated keystrokes to the active window.
Si tu tiens à garder l'utilisation de FileZilla regarde du côté de CtrlSend
Sinon, tu as une UDF qui va bien : FTPEx.au3
Avatar du membre
yagonfstm91
Niveau 4
Niveau 4
Messages : 66
Enregistré le : dim. 07 août 2011 14:26
Status : Hors ligne

Re: [..] Comment lancer un script en mode silencieux

#3

Message par yagonfstm91 »

Pourquoi passer par FilleZilla ?

Essaye avec ceci :

Code : Tout sélectionner

$server = 'ftp.site.fr'
$username = 'utilisateur'
$pass = '*********'


$Open = _FTP_Open('MyFTP Control')
$Conn = _FTP_Connect($Open, $server, $username, $pass)
GUICtrlSetData($progressbar, 50)

_FTP_ProgressUpload($Conn, $s_LocalFile, $s_RemoteFile, "_Update_Progress") ; s_LocalFile : Fichier local et s_RemoteFile : nom du fichier une fois envoyer.
$Ftpc = _FTP_Close($Open)

Func _Update_Progress($Percentage) ; Permet d'avoir la progression de l'upload !
   $pourcentupload = 50 + ($Percentage / 2)
   GUICtrlSetData($progressbar, $pourcentupload) ; pour afficher la progression de l'upload
    Return 1 ; ###
EndFunc
:wink:
Mon site web : http://YagoServer.net/
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Comment lancer un script en mode silencieux

#4

Message par Tlem »

@yagonfstm91
Lorsque vous proposez un code, merci de faire en sorte qu'il soit utilisable facilement. Ici en l'occurrence, vous faites appel à un include que vous n'indiquez pas. Le demandeur n'est pas forcément au courant qu'il faut rajouter tel ou tel UDF et donc passer sur votre script qui va lui renvoyer un message d'erreur.
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é".
oliviernouhi
Niveau 1
Niveau 1
Messages : 10
Enregistré le : jeu. 23 févr. 2012 11:30
Status : Hors ligne

Re: [..] Comment lancer un script en mode silencieux

#5

Message par oliviernouhi »

je vais regarder ce week end

merci pour vos conseils je vous tiens au courant
Avatar du membre
yagonfstm91
Niveau 4
Niveau 4
Messages : 66
Enregistré le : dim. 07 août 2011 14:26
Status : Hors ligne

Re: [..] Comment lancer un script en mode silencieux

#6

Message par yagonfstm91 »

Tlem a écrit :@yagonfstm91
Lorsque vous proposez un code, merci de faire en sorte qu'il soit utilisable facilement. Ici en l'occurrence, vous faites appel à un include que vous n'indiquez pas. Le demandeur n'est pas forcément au courant qu'il faut rajouter tel ou tel UDF et donc passer sur votre script qui va lui renvoyer un message d'erreur.
Oups j'avais oublier désolé ! :mrgreen:

C'est

Code : Tout sélectionner

#include <FTPEx.au3>
si je me rappelle bien :D

*Je précise aussi qu'il faut avoir une ProgressBar nommé $progressbar si on veux avoir la progression de l'upload :mrgreen:
Mon site web : http://YagoServer.net/
oliviernouhi
Niveau 1
Niveau 1
Messages : 10
Enregistré le : jeu. 23 févr. 2012 11:30
Status : Hors ligne

Re: [..] Comment lancer un script en mode silencieux

#7

Message par oliviernouhi »

Merci de ton aide, mais la je sèche un peu

Voila avec ton code ça donne ceci :

Code : Tout sélectionner

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Res_requestedExecutionLevel=asInvoker
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#cs ----------------------------------------------------------------------------

 AutoIt Version : 3.3.8.1
 Auteur:         MonNom

 Fonction du Script :
    Modèle de Script AutoIt.

#ce ----------------------------------------------------------------------------

; Début du script - Ajouter votre code ci-dessous.

$server = 'ftp.site.fr'
$username = 'utilisateur'
$pass = '*********'


$Open = _FTP_Open('MyFTP Control')
$Conn = _FTP_Connect($Open, $server, $username, $pass)
GUICtrlSetData($progressbar, 50)

_FTP_ProgressUpload($Conn, $s_LocalFile, $s_RemoteFile, "_Update_Progress") ; s_LocalFile : Fichier local et s_RemoteFile : nom du fichier une fois envoyer.
$Ftpc = _FTP_Close($Open)

Func _Update_Progress($Percentage) ; Permet d'avoir la progression de l'upload !
   $pourcentupload = 50 + ($Percentage / 2)
   GUICtrlSetData($progressbar, $pourcentupload) ; pour afficher la progression de l'upload
    Return 1 ; ###
EndFunc
Le $Open &Conn permettent de faire la connexion au FTP
Mais pour le s_LocalFile et s_RemoteFile je ne comprend pas comment tu dis de supprimer le fichier Y du FTP et d'envoyer le fichier X sur le FTP.
il faut lui dire s_LocalFile = "Y" et s_RemoteFile = "X" ??

Comment mettre en place la $progressbar ? Je ne comprend pas trop la fonction et l'utilisation de GUICtrlSetData

Merci d'avance pour votre aide
oliviernouhi
Niveau 1
Niveau 1
Messages : 10
Enregistré le : jeu. 23 févr. 2012 11:30
Status : Hors ligne

Re: [..] Comment lancer un script en mode silencieux

#8

Message par oliviernouhi »

personne n'a une idée ?
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Comment lancer un script en mode silencieux

#9

Message par PandiPanda »

Bonsoir,
avez vous parcouru les divers méthode proposé par cette UDF <FTPEx.au3> ?

comme ceux ci;

- _FTP_ProgressDownload()
- _FTP_ProgressUpload()
- _FTP_FileDelete()
- _FTP_FilePut()
- ...
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Répondre