OVH Cloud OVH Cloud

WD75 ou WD8 Optimiser la vitesse d'execution d'un programme DOS

6 réponses
Avatar
Georges PEYRE
Bonjour,

Dans une application j'utilise un programme .exe DOS que je lance avec
DDELance ou LanceAppli après avoir créé un fichier .BAT qui contient
les variables de paramétrage du programme DOS.
Ces 2 fonctions lancent le programme .BAT mais ouvrent une fenêtre
MS-DOS qu'il faut iconiser pour ne pas la voir et dont le temps pris
pour l'ouverture ms-dos, l'iconisation, la fermeture ms-dos pénalise la
durée d'exécution du programme DOS qui est elle très courte.
( J'ai pu constater que si je n'iconise pas la fenêtre, l'exécution du
programme DOS est un simple flash comparé aux 2 secondes nécessaire à
l'iconisation )

Le programme DOS ( fichier à fichier ) que je lance transforme un
fichier image en un autre fichier image sans aucun affichage de message
ou d'ouverture de fenêtre.
La durée totale d'une execution est d'environ de 2 à 3 secondes ce qui
me parait plutôt long.

Existe-t-il une astuce pour executer le programme DOS sans ouvrir la
fenêtre MS-DOS ?
Par exemple me serait-il possible d'ouvrir la fenêtre MS-DOS en
hors-ecran ? mais comment faire ?

Merci d'avance aux experts WINDEV / DOS

Cordialement

--
Elle est pas belle la vie ?

6 réponses

Avatar
STASZEWSKI André
Salut,

Georges PEYRE wrote:
Bonjour,

Dans une application j'utilise un programme .exe DOS que je lance avec
DDELance ou LanceAppli après avoir créé un fichier .BAT qui contient
les variables de paramétrage du programme DOS.
Ces 2 fonctions lancent le programme .BAT mais ouvrent une fenêtre
MS-DOS qu'il faut iconiser pour ne pas la voir et dont le temps pris
pour l'ouverture ms-dos, l'iconisation, la fermeture ms-dos pénalise
la durée d'exécution du programme DOS qui est elle très courte.
( J'ai pu constater que si je n'iconise pas la fenêtre, l'exécution du
programme DOS est un simple flash comparé aux 2 secondes nécessaire à
l'iconisation )

Le programme DOS ( fichier à fichier ) que je lance transforme un
fichier image en un autre fichier image sans aucun affichage de
message ou d'ouverture de fenêtre.
La durée totale d'une execution est d'environ de 2 à 3 secondes ce qui
me parait plutôt long.

Existe-t-il une astuce pour executer le programme DOS sans ouvrir la
fenêtre MS-DOS ?
Par exemple me serait-il possible d'ouvrir la fenêtre MS-DOS en
hors-ecran ? mais comment faire ?

Merci d'avance aux experts WINDEV / DOS

Cordialement



Vérifie parmis les paramètres du programme Dos s'il n'y a pas un mode
"silence" par exemple "-Quiet" ou qq chose de similaire.
Ainsi en rajoutant ce paramètre le travail du programme se fera en arrière
plan (mais tjrs dans une fenêtre dos)
Tu peux aussi (je crois) jouer sur les propriétés du PIF/BAT pour réduire
les dimensions de la fenêtre ou la faire fonctionner en arrière plan (mais
j'en suis pas sûr)... à vérifier...
Sinon, peut être qu'en ouvrant ta fenêtre WD en plein écran et "par dessus
tout", la fenêtre Dos restera derrière... à tester....
--
Cordialement,
André STASZEWSKI
Nouvelle version 3.0 de Photo Visu sur www.PlaneteDev.fr.st
Avatar
Georges PEYRE
Bonjour André et merci une fois de plus pour ta patience,

Après mure réflexion, STASZEWSKI André a écrit :

Vérifie parmis les paramètres du programme Dos s'il n'y a pas un mode
"silence" par exemple "-Quiet" ou qq chose de similaire.
Ainsi en rajoutant ce paramètre le travail du programme se fera en arrière
plan (mais tjrs dans une fenêtre dos)


Non aucun paramètre de ce style

Tu peux aussi (je crois) jouer sur les propriétés du PIF/BAT pour réduire
les dimensions de la fenêtre ou la faire fonctionner en arrière plan (mais
j'en suis pas sûr)... à vérifier...


Non plus

Sinon, peut être qu'en ouvrant ta fenêtre WD en plein écran et "par dessus
tout", la fenêtre Dos restera derrière... à tester....


Non la fenêtre MS-DOS s'ouvre au-dessus

J'abandonne mes essais : tant pis je garderai mes 2 secondes d'attente
Ce n'est pas élégant mais en revanche la conservation de la qualité des
images
et des informations EXIF des images le mérite.

Merci encore
Cordialement

--
Elle est pas belle la vie ?
Avatar
Georges PEYRE
Bonjour André,

STASZEWSKI André avait prétendu :
Sinon, peut être qu'en ouvrant ta fenêtre WD en plein écran et "par dessus
tout", la fenêtre Dos restera derrière... à tester....



Finalement j'ai continué à chercher ( mes premiers essais déconnaient )
en suivant tes conseils et je me suis arrêté à la solution suivante qui
me donne totalement satisfaction avec l'exemple suivant :
PrgLance est une chaîne
PrgLance = "jhead.exe MonImageEntree.jpg >MonImageSortie.jpg + RC +
"CLS"
fSauveTexte("LANCE.BAT",PrgLance)
FenEtat("FenetreMere",DessusTout)
LanceAppli("LANCE.PIF", exeActif, Vrai)
FenEtat("FenetreMere",Normal)

--------------------
Quelques précisions
--------------------
PrgLance = "jhead.exe myfile.jpg >Jout.txt + RC + "CLS"
// Cette forme d'écriture de la commande DOS permet de fermer la
fenetre MS-DOS après exécution
// je confirme que CLS marche et EXIT ne marche pas : pourquoi ? je
n'en sais rien mais ça marche

FenEtat("FenetreMere",DessusTout)
// Permet de cacher la fenêtre MS-DOS pendant son execution

LanceAppli("LANCE.PIF", exeActif, Vrai)
// exeActif permet d'obtenir la vitesse maxi de l'execution MS-DOS (
exeIconise pénaliserait de 2 secondes
// la vitesse d'execution

FenEtat("FenetreMere",Normal)
// Ne pas oublier de remettre la fenêtre à son été normal si pas d'avis
contraire

Merci encore à André STASZEWSKI et à Phil pour leur participation
efficace

Cordialement

--
Elle est pas belle la vie ?
Avatar
Georges PEYRE
Bonjour André

STASZEWSKI André vient de nous annoncer :
Sinon, peut être qu'en ouvrant ta fenêtre WD en plein écran et "par dessus
tout", la fenêtre Dos restera derrière... à tester....



Bonjour André,

STASZEWSKI André avait prétendu :

Sinon, peut être qu'en ouvrant ta fenêtre WD en plein écran et "par
dessus
tout", la fenêtre Dos restera derrière... à tester....

Finalement j'ai continué à chercher ( mes premiers essais déconnaient )
en suivant tes conseils et je me suis arrêté à la solution suivante qui
me donne totalement satisfaction avec l'exemple suivant :
PrgLance est une chaîne
PrgLance = "jhead.exe MonImageEntree.jpg >MonImageSortie.jpg + RC +
"CLS"
fSauveTexte("LANCE.BAT",PrgLance)
FenEtat("FenetreMere",DessusTout)
LanceAppli("LANCE.BAT", exeActif, Vrai)
FenEtat("FenetreMere",Normal)

--------------------
Quelques précisions
--------------------
PrgLance = "jhead.exe myfile.jpg >Jout.txt + RC + "CLS"
// Cette forme d'écriture de la commande DOS permet de fermer la
fenetre MS-DOS après exécution
// je confirme que CLS marche et EXIT ne marche pas : pourquoi ? je
n'en sais rien mais ça marche

FenEtat("FenetreMere",DessusTout)
// Permet de cacher la fenêtre MS-DOS pendant son execution

LanceAppli("LANCE.BAT", exeActif, Vrai)
// exeActif permet d'obtenir la vitesse maxi de l'execution MS-DOS (
exeIconise pénaliserait de 2 secondes
// la vitesse d'execution

FenEtat("FenetreMere",Normal)
// Ne pas oublier de remettre la fenêtre à son été normal si pas d'avis
contraire

Merci encore à André STASZEWSKI et à Phil pour leur participation
efficace

Cordialement

--
Elle est pas belle la vie ?
Avatar
Georges PEYRE
Bonjour

STASZEWSKI André a exprimé avec précision :
Sinon, peut être qu'en ouvrant ta fenêtre WD en plein écran et "par dessus
tout", la fenêtre Dos restera derrière... à tester....




Finalement j'ai continué à chercher ( mes premiers essais déconnaient )
en suivant tes conseils et je me suis arrêté à la solution suivante qui
me donne totalement satisfaction avec l'exemple suivant :
PrgLance est une chaîne
PrgLance = "jhead.exe MonImageEntree.jpg >MonImageSortie.jpg + RC +
"CLS"
fSauveTexte("LANCE.BAT",PrgLance)
FenEtat("FenetreMere",DessusTout)
LanceAppli("LANCE.PIF", exeActif, Vrai)
FenEtat("FenetreMere",Normal)

--------------------
Quelques précisions
--------------------
PrgLance = "jhead.exe myfile.jpg >Jout.txt + RC + "CLS"
// Cette forme d'écriture de la commande DOS permet de fermer la
fenetre MS-DOS après exécution
// je confirme que CLS marche et EXIT ne marche pas : pourquoi ? je
n'en sais rien mais ça marche

FenEtat("FenetreMere",DessusTout)
// Permet de cacher la fenêtre MS-DOS pendant son execution

LanceAppli("LANCE.PIF", exeActif, Vrai)
// exeActif permet d'obtenir la vitesse maxi de l'execution MS-DOS (
exeIconise pénaliserait de 2 secondes
// la vitesse d'execution

FenEtat("FenetreMere",Normal)
// Ne pas oublier de remettre la fenêtre à son été normal si pas d'avis
contraire

Merci encore à André STASZEWSKI et à Phil pour leur participation
efficace

Cordialement

--
Elle est pas belle la vie ?
Avatar
Georges PEYRE
Bonjour

STASZEWSKI André vient de nous annoncer :
Sinon, peut être qu'en ouvrant ta fenêtre WD en plein écran et "par dessus
tout", la fenêtre Dos restera derrière... à tester....




Finalement j'ai continué à chercher ( mes premiers essais déconnaient )
en suivant tes conseils et je me suis arrêté à la solution suivante qui
me donne totalement satisfaction avec l'exemple suivant :
PrgLance est une chaîne
PrgLance = "jhead.exe MonImageEntree.jpg >MonImageSortie.jpg + RC +
"CLS"
fSauveTexte("LANCE.BAT",PrgLance)
FenEtat("FenetreMere",DessusTout)
LanceAppli("LANCE.BAT", exeActif, Vrai)
FenEtat("FenetreMere",Normal)

--------------------
Quelques précisions
--------------------
PrgLance = "jhead.exe MonImageEntree.jpg >MonImageSortie.jpg + RC +
"CLS"
// Cette forme d'écriture de la commande DOS permet de fermer la
fenetre MS-DOS après exécution
// je confirme que CLS marche et EXIT ne marche pas : pourquoi ? je
n'en sais rien mais ça marche

FenEtat("FenetreMere",DessusTout)
// Permet de cacher la fenêtre MS-DOS pendant son execution

LanceAppli("LANCE.BAT", exeActif, Vrai)
// exeActif permet d'obtenir la vitesse maxi de l'execution MS-DOS (
exeIconise pénaliserait de 2 secondes
// la vitesse d'execution

FenEtat("FenetreMere",Normal)
// Ne pas oublier de remettre la fenêtre à son été normal si pas d'avis
contraire

Merci encore à André STASZEWSKI et à Phil pour leur participation
efficace

Cordialement

--
Elle est pas belle la vie ?