Pb LanceAppli(....) et fichiers .vbs
Stagiaire WDF
Inscrit:
09/05/2007 15:04
Post(s): 16
Après avoir refait des essais, la méthode suivante n'exécute pas mon fichier .vbs.
(Je vérifie l'exécution avec une MessageBox dans le fivhier vbs.)

fic 	est une chaîne = ComplèteRep(fRepEnCours()) + "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 = ComplèteRep(fRepEnCours()) + "ficDateAcces.txt"

sTexte est une chaîne
sTexte = """" + fic + """ " + " """ + arg1 + """ """ + arg2 + """ """ + arg3 + """"
LanceAppli(sTexte, exeActif, exeNonBloquant)


Avant exécution, sTexte vaut la valeur suivante:
"C:\Mes Projets\PRGM\Exe\donneDateAcces.vbs" "F:\fic1\" "fic1.exe" "C:\Mes Projets\PRGM\Exe\ficDateAcces.txt"


Si j'exécute directement cette ligne dans l'invite de commande Windows, le fichier . vbs est bien exécuté.

Auriez-vous une explication rationnelle à me founir?
Là, çà fait un moment que je bloque.

Contribution le : 18/05/2007 11:53
Créer un fichier PDF de la contribution Imprimer


Re: Pb LanceAppli(....) et fichiers .vbs
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

A première vue je dirais qu'il manque un guillement au debut et un à la fin, je m'explique:

exécuter dans l'invite :
"C:\Mes Projets\PRGM\Exe\donneDateAcces.vbs" "F:\fic1\" "fic1.exe" "C:\Mes Projets\PRGM\Exe\ficDateAcces.txt"

Les guillemets de début et de fin sont envoyer à l'invite.
par contre sous windev se sont des marqueurs de chaines et je pense que vous devrier avoir:
""C:\Mes Projets\PRGM\Exe\donneDateAcces.vbs" "F:\fic1\" "fic1.exe" "C:\Mes Projets\PRGM\Exe\ficDateAcces.txt""

de plus sur le site j'ai écrit une classe qui génère les ligne de commande sans se soucier des espaces et des guillemets ici

Contribution le : 18/05/2007 13:34
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Pb LanceAppli(....) et fichiers .vbs
Stagiaire WDF
Inscrit:
09/05/2007 15:04
Post(s): 16
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

Contribution le : 25/05/2007 12:03
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2