Page 1 sur 1
[R] Programme AutoIt dans une tache planifiée
Posté : ven. 25 janv. 2013 09:48
par Utilisateur 3309 supprimé
Bonjour,
je m'arrache les cheveux sur un truc bizarre...j'ai fait un programme autoit qui va rechercher des fichiers PDF sur un lecteur reseau et qui les copie sur le lecteur local.
Lorsque je clique sur mon programme il fait le boulot sans soucis. Donc j'en déduis que mon programme marche bien.
je fais une tache planifiée pour que cette copie de fichiers se fasse chaque matin a 8h00.
Ben là ca ne fonctionne pas...quand j’exécute manuellement la tache planifiée il ne se passe absolument rien...
J'ai fait un fichier .bat dans lequel je crée un fichier .log qui inscrit l'heure/minute/seconde avant exécution du programme et idem après exécution. Et bien le log se crée bien et me donne une heure/minute/seconde de début et de fin identique...donc l'appli s'est bien lancée et s'est fermée immédiatement ???
je ne sais plus dans quel sens chercher, côté programme ou tache planifiée ? si quelqu'un a eu le meme soucis une fois ou s'il pouvait m'orienter....Merci !
voici mon code a tout hasard...je décompose ce qu'il fait:
on ouvre un fichier excel dans lequel il y a 2 colonnes remplies.
la 1ere contient un nom de fichier PDF, la seconde une date sous la forme 20130101.
je vais récuperer le fichier PDF a son emplacement et le copie en local dans un dossier c:\recupbl\bl\<annee>\<mois>\<nom fichier>
► Afficher le texte
Code : Tout sélectionner
#include <WindowsConstants.au3>
#include <Excel.au3>
global $dir_in ; Emplacement des fichiers a récupérer
global $dir_out ; Emplacement destination
global $end_message ; Message de fin
global $liste_bl ; fichier excel liste des BL
global $arr[10000] ; espace réservé à la lecture de la colonne excel des BL
global $date[10000] ; espace réservé à la lecture de la colonne excel des dates de confirmation
$fichierini = @ScriptDir & "\recupbl.ini"
iniinfo($fichierini)
$oExcel = _ExcelBookOpen($liste_bl,0) ; On ouvre le fichier Excel
_ExcelSheetActivate($oExcel, "Feuil1") ; on se positionne sur la feuille Excel
; Lecture du fichier Excel et chargement des variables array
$i = 2
While 1
$arr[$i]= $oExcel.Activesheet.Cells($i,1).Value ; N° BL
$date[$i]= $oExcel.Activesheet.Cells($i,2).Value ; Date
$date[$i] = StringLeft($date[$i],4) & "\" & StringRight(StringLeft($date[$i],6),2) ; on reconstitue la date sous la forme 2013/01
if $arr[$i] ="" then ExitLoop ; Si la cellule est vide on sort de la boucle
$i = $i+1
WEnd
;$lignes = $i ;combien de fichiers PDF il y a dans la colonne
_ExcelBookClose($oExcel) ; On ferme Excel
;ProcessClose("EXCEL.EXE")
$i = 2
While 1
if $arr[$i] ="" then ExitLoop ; Si la cellule est vide on sort de la boucle
FileCopy ($dir_in & "*" & $arr[$i] & "*.pdf", $dir_out & $date[$i] & "\" & $arr[$i] & ".pdf",9)
$i = $i+1
WEnd
FUNC INIINFO($file)
$dir_in = IniRead($file, "folders", "input", "\\Daticeva\bolle\FILED\")
$dir_out = IniRead($file, "folders", "output", "C:\recupbl\BL\")
$liste_bl = IniRead($file, "folders", "liste_bl", "C:\recupbl\BLs_Recup.xls")
$end_message = IniRead($file, "messages", "end", "écupération terminée !")
EndFunc
Re: [..] programme autoit dans une tache planifiée
Posté : ven. 25 janv. 2013 12:46
par jchd
#RequireAdmin et/ou RunAs
sont peut-être la solution.
Re: [..] programme autoit dans une tache planifiée
Posté : ven. 25 janv. 2013 14:05
par Utilisateur 3309 supprimé
Je suis dans un domaine donc il se peut que ce soit un problème de droit....pourtant j'execute la tache planifiée et le programme avec le même utilisateur...
je vais essayer quand meme, merci.
Re: [..] programme autoit dans une tache planifiée
Posté : ven. 25 janv. 2013 14:52
par Utilisateur 3309 supprimé
j'ai ajouté #RequireAdmin, pas mieux...
Dans mon batch j'ai lancé l'execution avec un Runas, mais il n'est pas possible de mette le mot de passe utilisateur dans la commande? du coup ca bloque...et ca ne marche pas.
Sur un PC avec Windows XP, j'ai fais ma tache planifiée et cela fonctionne sans soucis. le probleme c'est que cette tache doit tourner sur un PC avec Win7 64bit...je ne vois vraiment pas pourquoi ca ne fonctionne pas...
Re: [..] programme autoit dans une tache planifiée
Posté : ven. 25 janv. 2013 15:51
par Utilisateur 3309 supprimé
du nouveau:
Sur win7 lorsque je lance l'appli manuellement j'ai l'icone de l'appli dans la barre des taches. Lorsque j'execute la tache planifiée je n'ai pas l'icone...mais j'ai bien l'appli qui tourne dans le gestionnaire des taches...A quoi cela est il du ? y a t'il un rapport avec le problème ?
Je viens de modifier la ligne:
$oExcel = _ExcelBookOpen($liste_bl,0) ; On ouvre le fichier Excel
par
$oExcel = _ExcelBookOpen($liste_bl,1) ; On ouvre le fichier Excel
pour voir l'ouverture du fichier excel, mais je ne le vois pas (si la tache est executée avec le planificateur des taches, en manuel je le vois), bien qu'il soit présent dans le gestionnaire des taches...serait-ce excel qui pose problème ?? est-ce la cause ou seulement une des conséquences du problème...
Re: [..] programme autoit dans une tache planifiée
Posté : ven. 25 janv. 2013 16:06
par ani
tu procede de quel manière ?
Fichier bat ?
utilisation de quel utilitaire pour le planitache ? AT, schtasks.exe
Fichier au3 source ou compilée ?
Seven UP j'y retourne

Re: [..] programme autoit dans une tache planifiée
Posté : ven. 25 janv. 2013 16:43
par Utilisateur 3309 supprimé
Bonjour ani, merci de te pencher sur mon problème.
j'utilise la tache planifiée de seven, qui se trouve dans le menu démarrer/accessoires/outils systeme
j’exécute le fichier compilé en direct sans passer par un .bat, je l'avais fait auparavant pour tester si la tache planifiée marchait bien.
je pense avoir trouvé la cause du problème mais je ne la comprend pas malgré tout.
Lorsque je créé la tache planifiée, dans l'onglet général, je peux cocher une option:
"Executer même si l'utilisateur n'est pas connecté"
lorsque je ne coche pas cette case, ca marche.
Pourtant quand je la coche, je renseigne correctement le nom d'utilisateur et le mot de passe, et là ca ne fonctionne plus.
Ce serait bien que la tache s’exécute comme un service, sans qu'il y ait eu une ouverture de session...il me semble que c'est le cas sur XP ?
Re: [..] Programme AutoIt dans une tache planifiée
Posté : ven. 25 janv. 2013 21:59
par Tlem
AMHA, cela est lié au fait que le script lancé en tant que service n'a pas les même droits et n'accède pas aux mêmes variables que lorsque lancé par un utilisateur.
Les problèmes rencontrés fréquemment avec ce genre de casse tête sont souvant liés à l'utilisation de variable utilisateur (non accessibles en tant que service) et/ou probablement comme dans votre cas un problème de droits d’accès aux partages (qui sont réglés par utilisateur).

Re: [..] Programme AutoIt dans une tache planifiée
Posté : ven. 25 janv. 2013 22:54
par Utilisateur 3309 supprimé
effectivement, je viens de lire que si pas de session utilisateur ouverte alors pas d'acces aux lecteurs reseau
Re: [R] Programme AutoIt dans une tache planifiée
Posté : mer. 05 août 2015 15:20
par dams000
Bonjour,
Je déterre le sujet, car j'ai un problème assez proche.
Avec le code suivant :
Code : Tout sélectionner
$Rep= IniRead("Config.ini", "Config", "Rep","")
msgbox(0,"rep : ",$Rep)
J'ai un fichier config.ini à la même place que l'.exe avec [Config] et Rep=c:\
Quand je le lance à la main, j'ai bien c:\ dans la fenêtre, mais lorsque c'est la tache planifiée qui le lance (session ouverte en Windows 7, case "Exécuter même si l'utilisateur n'est pas connecté" décochée) la fenêtre s'ouvre mais sans afficher le c:\ visiblement Iniread ne passe pas.
Aucune erreur ne s'affiche.
Si vous pouvez m'aider, merci d'avance.
Re: [R] Programme AutoIt dans une tache planifiée
Posté : mer. 05 août 2015 15:50
par orax
À mon avis le répertoire de travail (
@WorkingDir) sera différent quand le script est exécuté depuis la tâche planifiée. Pour le changer depuis la tâche il y a le champ
Commencer dans (facultatif).
Le mieux est de spécifier le chemin complet dans le script :
Code : Tout sélectionner
$Rep = IniRead(@ScriptDir & "\Config.ini", "Config", "Rep", "")
Re: [..] Programme AutoIt dans une tache planifiée
Posté : mer. 09 oct. 2024 14:47
par ptiseb60
Tlem a écrit : ↑ven. 25 janv. 2013 21:59
AMHA, cela est lié au fait que le script lancé en tant que service n'a pas les même droits et n'accède pas aux mêmes variables que lorsque lancé par un utilisateur.
Les problèmes rencontrés fréquemment avec ce genre de casse tête sont souvant liés à l'utilisation de variable utilisateur (non accessibles en tant que service) et/ou probablement comme dans votre cas un problème de droits d’accès aux partages (qui sont réglés par utilisateur).
Bonjour,
Je me permet de déterrer a mon tour le sujet, une solution pour contourner ce problème a-t-elle été trouvée depuis?
Merci par avance.
Re: [R] Programme AutoIt dans une tache planifiée
Posté : ven. 11 oct. 2024 08:46
par Tlem
Je dirais que les solutions ont été données.
Après tout dépend de votre problème. Mais sans plus de détails, ça va pas être simple.
Créez un nouveau sujet et exposez votre problématique (de préférence avec du code).
Merci