Page 1 sur 1

[..] Comment lancer un script en mode silencieux

Posté : jeu. 23 févr. 2012 11:42
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

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

Posté : jeu. 23 févr. 2012 12:08
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

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

Posté : jeu. 23 févr. 2012 12:23
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:

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

Posté : jeu. 23 févr. 2012 22:34
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.

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

Posté : ven. 24 févr. 2012 16:20
par oliviernouhi
je vais regarder ce week end

merci pour vos conseils je vous tiens au courant

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

Posté : ven. 24 févr. 2012 19:02
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:

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

Posté : lun. 27 févr. 2012 11:40
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

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

Posté : mer. 29 févr. 2012 10:08
par oliviernouhi
personne n'a une idée ?

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

Posté : mer. 29 févr. 2012 19:12
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()
- ...