Re: Pb LanceAppli(....) et fichiers .vbs

Posté par nrobin le 25/5/2007 12:03:48
Problème résolu:

Etant donné que les fichiers .vbs sont exécutés à partir de l'exécuteur de script windows, j'ai tenté d'exécuter WScript.exe en lui passant en paramètre, mon fichier .vbs et ces arguments.

Cela fonctionne parfaitement. Encore merci pour vos conseils.

Voila ma solution:

PROCEDURE LireDateDernierAcces(cheminFichier)

// Récupérer la date de dernier accès
IdFichier est un entier
date est une chaîne
taille arg3 est un entier
taille st est un entier

fic est une chaîne = fExtraitChemin(sIniParametreChemin, fDisque) + fExtraitChemin(sIniParametreChemin, fRépertoire) + "donneDateAcces.vbs"
arg1 est une chaîne = fExtraitChemin(cheminFichier, fDisque) + fExtraitChemin(cheminFichier, fRépertoire)
arg2 est une chaîne = fExtraitChemin(cheminFichier, fFichier) + fExtraitChemin(cheminFichier, fExtension)
arg3 est une chaîne = fExtraitChemin(fic, fDisque) + fExtraitChemin(fic, fRépertoire) + "ficDateAcces.txt"
st est une chaîne

sCommande est une chaîne
sCommande = ChaîneConstruit([
"%1" "%2" "%3" "%4"
], fic, arg1, arg2, arg3)

sTexte est une chaîne
sTexte = """" + fic + """ " + " """ + arg1 + """ """ + arg2 + """ """ + arg3 + """"


exec est une chaîne = "C:\WINDOWS\System32\WScript.exe"
exec = """" + exec + """"
chaineScript est une chaîne = exec + " " + sTexte

LanceAppli(chaineScript)


Multitache(50)
IdFichier = fOuvre(arg3, foLectureEcriture)
SI IdFichier <> -1 ALORS
// Lecture d'une ligne dans ce fichier
date = fLitLigne(IdFichier)
FIN
fFerme(IdFichier)

// Lecture de la date en cours
dateAcces = date

RENVOYER dateAcces






Voila le script de mon fichier .vbs permettant de récupérer la date de dernier accès à un fichier sans la modifier: (peut-être que cela peut vous servir)

option explicit

dim FSO, Arg1, Arg2, Arg3, rep, fic, dateAcces, ficDateAcces
Const ForWriting = 2

'On récupère les arguments
Arg1 = Wscript.Arguments(0)
Arg2 = Wscript.Arguments(1)
Arg3 = Wscript.Arguments(2)

Set FSO = CreateObject("Scripting.FileSystemObject")
if FSO.FileExists(Arg1 + Arg2) = true then
Set rep = FSO.GetFolder(Arg1)
Set fic = FSO.GetFile(Arg1 + Arg2)

'Recuperation de la date
if FSO.FileExists(rep.Path & "\" & fic.Name) = true then
dateAcces = fic.DateLastAccessed
end if

'On écrit la date dans un fichier texte
Set ficDateAcces = fso.OpenTextFile(Arg3, ForWriting, true)
ficDateAcces.Write(dateAcces)

else
'On écrit la date dans un fichier texte
dateAcces = "00/00/0000 00:00:00"
Set ficDateAcces = fso.OpenTextFile(Arg3, ForWriting, true)
ficDateAcces.Write(dateAcces) 
end if

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=12&topic_id=5146&post_id=21301