OVH Cloud OVH Cloud

WD75 ou WD8 Comment executer un programme MSDOS

26 réponses
Avatar
Georges PEYRE
Bonjour,

Mon problème est certainement dérisoire mais je ne sais comment faire
:/

Je dois executer un programme MSDOS dont la commande MSDOS est celle-ci
:
MonProgDos.exe MonFichier.xxx > Resultat.txt

Le programme dos est MonProgDos
Monfichier.xxx est un paramètre attendu par MonProgDos
Resultat.txt contient le résultat de l'execution de MonProgDos

1) Comment le lancer avec Windev
2) La fenêtre MSDOS ne dois pas s'ouvrir

Merci d'avance

--
Elle est pas belle la vie ?

6 réponses

1 2 3
Avatar
Bertrand
Bertrand a formulé ce lundi :
Bertrand a présenté l'énoncé suivant :

et si tu fait demarrer/executer et que tu tapes : command /c lance.bat, ça
donne quoi ?



sorry, ça ne peux pas marcher : il faut mettre
command /C chemin_completlance.bat



ou d'ailleurs directement :
command /c chemin_completMonProgDos.exe chemin_completMonFichier.xxx >
chemin_completResultat.txt")



oups
command /c chemin_completMonProgDos.exe chemin_completMonFichier.xxx >
chemin_completResultat.txt


bon, je vais me coucher ;-)
Avatar
STASZEWSKI André
Georges PEYRE wrote:
Bonjour et merci pour ton aide mais la différence entre ton code et le
mien est que en plus de l'indirection pour créer le fichier
Resultat.txt j'ai également un paramètre à passer au programme
MonProgDos et apparemment cette forme de commande n'est pas compatible
avec DDELance ou LanceAppli


Par contre je ne comprends pas la différence de comportement au niveau
du DOS :

Avec cet exemple ...
PrgLance est une chaîne
PrgLance = "MonProgDos.exe MonFichier.xxx >Resultat.txt" + RC + "EXIT"
fSauveTexte("LANCE.BAT",PrgLance)
LanceAppli("LANCE.BAT")

Pour vérifier que le contenu obtenu dans LANCE.BAT est correct ...
Si j'ouvre la fenêtre MSDOS et que je tape LANCE.BAT l'exécution est
correcte ( Resultat.txt est bien créé ) et la commande EXIT ferme la
fenêtre MSDOS

Par contre ...

Si tape LANCE.BAT en ligne de commande dans la fenêtre Executer du
menu Démarrer de Windows j'ai le même type d'execution qu'avec
LanceAppli c'est à dire que l'exécution est correcte ( Resultat.txt
est bien créé ) mais la commande EXIT NE FERME PAS la fenêtre DOS

Pourquoi ?? :/ :/




Parce que le comportement sous 95, 98, Me et XP est différent.
Sous XP la fenêtre DOS se ferme d'elle même, ce qui n'est pas le cas sous
les environnements antérieurs.
Prenons donc le taureau par les cornes... ;-)

Créer le code suivant dans ton programme :

PrgLance est une chaîne
PrgLance = "jhead.exe myfile.jpg >Jout.txt"
fSauveTexte("LANCE.BAT",PrgLance)
LanceAppli("LANCE.PIF", exeIconise, Vrai)

Vérifier que les noms de fichiers sont les mêmes sur ton disque !
Ensuite lancer ce programme pour que le fichier BAT soit créé.
Fermer la fenêtre DOS et le programme.
A présent à l'aide de l'exploreur cliquer avec le bouton droit de a souris
sur le fichier LANCE .BAT et choisir "Propriétés" dans le menu contextuel.
Dans la fenêtre qui s'ouvre, cliquer sur le volet "Programme" de l'onglet et
cocher la case "Fermer en quittant".
Valider la fenêtre en cliquant sur OK.
On peut voir qu'un fichier nommé LANCE (sans extension) à été créé. En
réalité ce fichier est un fichier PIF (comme anciennement sous Windows 3.x)
C'est ce fichier qui doit être exécuté dans ton programme afin qu'il termine
l'application batch créée précédemment.
A présent tu peux relancer ton programme, le fichier Jout.txt est bien créé
sans même que la fenêtre DOS apparaisse (grâce à la propriété "exeIconise"
glissée dans les paramètres de LanceAppli.
Attention toutefois, car le chemin d'execution et le fichier BAT sont
mémorisés dans le fichier PIF et si le fichier BAT doit être créé
dynamiquement cela risque de poser un problèmes....

Ce programme a été testé avec succès sous environnement Windows Me.

--
Cordialement,
André STASZEWSKI
Nouvelle version 3.0 de Photo Visu sur www.PlaneteDev.fr.st
Avatar
JP
D'ailleurs j'ai fait une autre tentative en créant un fichier .bat que
je lance ensuite avec LanceAppli
exemple :
PrgLance est une chaîne
PrgLance = "MonProgDos.exe MonFichier.xxx >Resultat.txt"
fSauveTexte("LANCE.BAT",PrgLance)
LanceAppli("LANCE.BAT")

Dans ce cas l'execution se passe correctement :') : le fichier est bien
cree mais je me retrouve alors apres execution avec la fenêtre MSDOS
ouverte qui contient la ligne de commande executée mais je ne sais
alors pas comment fermer la fenêtre avec Windev

--> faut rajouter l'instruction EXIT apres ta ligne de cmd :)

--
Ce message a été posté via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr

http://forums.club-internet.fr/
Avatar
Georges PEYRE
Bonjour André et merci infiniment pour tes explications très claires

STASZEWSKI André a émis l'idée suivante :

Sous XP la fenêtre DOS se ferme d'elle même, ce qui n'est pas le cas sous
les environnements antérieurs.


C'est ce qui se passe pour mon cas sous W98SE

Créer le code suivant dans ton programme :

PrgLance est une chaîne
PrgLance = "jhead.exe myfile.jpg >Jout.txt"
fSauveTexte("LANCE.BAT",PrgLance)
LanceAppli("LANCE.PIF", exeIconise, Vrai)



Si je met .PIF cà ne marche pas donc je lance LANCE.BAT


Ensuite lancer ce programme pour que le fichier BAT soit créé.
Fermer la fenêtre DOS et le programme.
A présent à l'aide de l'exploreur cliquer avec le bouton droit de a souris
sur le fichier LANCE .BAT et choisir "Propriétés" dans le menu contextuel.
Dans la fenêtre qui s'ouvre, cliquer sur le volet "Programme" de l'onglet et
cocher la case "Fermer en quittant".


Ok
C'est là ou je suis surpris car dans les propriété d'origine du fichier
MS-DOS cette option était bien cochée ( c'est d'ailleurs ce que j'avais
immédiatement vérifié ) mais ce n'est pa reconduit dans les
caractéristiques d'un fichier .BAT


Ce qui m'étonne encore plus c'est que la recréation du fichier conserve
le cochage de la case "Fermer en quittant" : heureusement


Enfin dernière constation sur la durée d'exécution

Si j'utilise l'option ExeActif l'execution dure 1 seconde maxi
Avec l'option ExeIconise la durée est d'environ 3 secondes
Etonnant non !!!

Merci encore

Cordialement

--
Elle est pas belle la vie ?
Avatar
STASZEWSKI André
Georges PEYRE wrote:
Bonjour André et merci infiniment pour tes explications très claires

STASZEWSKI André a émis l'idée suivante :

Sous XP la fenêtre DOS se ferme d'elle même, ce qui n'est pas le cas
sous les environnements antérieurs.


C'est ce qui se passe pour mon cas sous W98SE

Créer le code suivant dans ton programme :

PrgLance est une chaîne
PrgLance = "jhead.exe myfile.jpg >Jout.txt"
fSauveTexte("LANCE.BAT",PrgLance)
LanceAppli("LANCE.PIF", exeIconise, Vrai)



Si je met .PIF cà ne marche pas donc je lance LANCE.BAT


Dans mon explication, à ce stade le PIF n'a pas encore été créé et le BAT
non plus.
Une fois le BAT créé et le PIF avec l'explorateur, c'est normalement le PIF
qu'il faut lancer pour que la fenêtre DOS se ferme en quittant.
En tout cas sous Win Me ça ne marche que comme ça, mais bon, si tu as trouvé
ton bonheur c'est le principal ! :-)


Ensuite lancer ce programme pour que le fichier BAT soit créé.
Fermer la fenêtre DOS et le programme.
A présent à l'aide de l'exploreur cliquer avec le bouton droit de a
souris sur le fichier LANCE .BAT et choisir "Propriétés" dans le
menu contextuel. Dans la fenêtre qui s'ouvre, cliquer sur le volet
"Programme" de l'onglet et cocher la case "Fermer en quittant".


Ok
C'est là ou je suis surpris car dans les propriété d'origine du
fichier MS-DOS cette option était bien cochée ( c'est d'ailleurs ce
que j'avais immédiatement vérifié ) mais ce n'est pa reconduit dans
les caractéristiques d'un fichier .BAT

Ce qui m'étonne encore plus c'est que la recréation du fichier
conserve le cochage de la case "Fermer en quittant" : heureusement


Peut être que la mémoire tampon à joué en cette faveur ?
A moins que la BDR garde l'habitude du client !
Faudrait tester sur un autre ordi...

Enfin dernière constation sur la durée d'exécution

Si j'utilise l'option ExeActif l'execution dure 1 seconde maxi
Avec l'option ExeIconise la durée est d'environ 3 secondes
Etonnant non !!!



Ben, faut bien laisser le temps à l'appli de s'icôniser...

Merci encore


De rien, merci aussi pour le lien vers jhead (ça peut servir un jour..)

Cordialement



--
Cordialement,
André STASZEWSKI
Nouvelle version 3.0 de Photo Visu sur www.PlaneteDev.fr.st
Avatar
Georges PEYRE
Bonjour,
Je remercie infiniment tous les contributeurs qui ont eu la patience et
l'amabilité de m'aider à résoudre ce problème
Cordialement

--
Elle est pas belle la vie ?
1 2 3