Page 1 sur 1

[R] Execution après compilation

Posté : jeu. 08 oct. 2015 10:09
par foliolur
Bonjour,

J'ai créé le script suivant qui me permet de générer des rapports tous les matins.
En gros je simule des cliques sur une application pour générer un fichier .txt. J'envoie
ensuite ce fichier .txt sur une boite mail commune du service informatique de ma boite.

Quand je suis dans l'éditeur aucun problème le script s’exécute bien et le rapport ainsi que le mail sont
générés correctement. Mais une fois compilé et automatisé via une tâche planifiée Windows le
script fonctionne une fois sur quatre environ. Le reste du temps les cliques sont mal simulés
ou le rapport et mal généré.

Je ne comprend pas trop le problème à moins d'avoir oublier un trucs essentiel. Je vois joint le code ci-dessous
► Afficher le texte
A préciser, c'est mon premier scripts sous Autoit, j'ai donc conscience que c'est peut être pas au point.

Re: Execution après compilation

Posté : jeu. 08 oct. 2015 10:31
par jguinch
Merci de modifier le titre du message afin qu'il respecte les règles du présentation d'un message.

Re: [..] Execution après compilation

Posté : jeu. 08 oct. 2015 11:27
par foliolur
C'est fait

Re: [..] Execution après compilation

Posté : jeu. 08 oct. 2015 15:38
par orax
foliolur a écrit :C'est fait
Image

Au lieu de Send() tu pourrais essayer avec ControlSend().
Au niveau de la tâche, est-ce que N'exécuter que si un utilisateur a ouvert une session est bien sélectionné ?
Si le logiciel peut être contrôlé via la ligne de commande ça serait plus fiable que de le contrôler par l'interface graphique avec des ControlClick, ControlSend, ...
L'ordinateur peut ne pas être assez réactif (trop lent). Dans ce cas, une pause (avec Sleep) entre les touches envoyés sera nécessaire.

Code : Tout sélectionner

Send("{T}")
Sleep(250) ; pause de 250 ms
Send("{E}")
Sleep(250)
Send("{ENTER}")

Re: [..] Execution après compilation

Posté : jeu. 08 oct. 2015 16:30
par foliolur
Bonjour et merci Orax pour ton aide.

Pas de ligne de commande effectivement je doit faire avec l'interface graphique, c'est aussi
pour ca que je passe par Autoit et la simulation des actions clavier/souris.

Je vais essayer avec t'es conseil ControlSend() et rajouter des sleep. Pour la tâche planifiée je te
confirme j'ai bien coché l'option "N'exécuter que si un utilisateur a ouvert de session". après la tâche
démarre correctement j'ai pas d'erreur dans l'historique vis à vis de ca.

Je vais déjà faire les modifications je vous tiens au courant

Re: [..] Execution après compilation

Posté : jeu. 08 oct. 2015 18:50
par orax
Dans le planificateur de tâches, la colonne Résultat de la dernière exécution retourne le code de sortie du programme. Par défaut, le code de sortie est 0 (pas d'erreur) mais le mot clé Exit permet de le changer.

Code : Tout sélectionner

$rc = _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject, $Body, $AttachFiles, $CcAddress, $BccAddress, $Importance, $Username, $Password, $IPPort, $ssl)
If @error Then
    MsgBox(0, "Error sending message", "Error code:" & @error & "  Description:" & $rc, 60) ; au bout de 60 secondes la boîte de dialogue se fermera automatiquement
    Exit 1
EndIf

Re: [..] Execution après compilation

Posté : ven. 09 oct. 2015 11:44
par foliolur
Bon ce matin avec les modifications c'étais pas mieux.

Du coup j'ai modifié la génération d'erreur comme tu ma indiqué Orax
et j'en ai profité pour clarifier un peux le code en déclarant des Dim
et en précisant toutes les INSTANCE de mes CLASS.

Ça à l'air de tourner correctement je vais vérifier semaine prochaine.
Je passe en résolu pour pas vous embêtez plus longtemps avec ce problème
merci pour votre aide