Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD75] Récupération d'info sur une appli DOS lancée par Windev ?

4 réponses
Avatar
aprosper_fr
Je veux faire un truc 'tout bête' :
- Lancer une appli dos
- savoir quand l'appli est terminée
- récupérer son code retour
- pouvoir stopper l'appli dos si elle n'est pas terminée à partir d'un
certain temp

Avec LanceAppli, je pourrais m'en sortir si exeNonBloquant et
exeValeurRetour étaient utilisables ensembles... ce qui n'est pas le
cas.

On a donc soit une attente de fin d'appli pour avoir son code retour,
soit une execution en parallèle de l'appli windev mais sans pouvoir
avoir le code retour.

Avant de me lancer dans les API qui, peut-être, me permettraient de
m'en sortir, j'aimerais savoir si quelqu'un a une idée.

Côté API, ce sera pas simple car la plupart des API sur les process
travaillent uniquement sur un process courant ou ont besoin d'un
handle que je vois pas comment récupérer en Windev (LanceAppli permet
juste de récupérer le PID).

4 réponses

Avatar
Philippe
Deux cas :

-> Soit tu est capable de rediriger la sortir du programme console dans un
fichier texte avec l'opérateur d'indirection
-> Soit non et dans ce cas il te faut utiliser les API pour créer un pipe
entre le programme console et ton process afin de rediriger les sorties
STD(OUT, IN,ERR)

J'ai fait çà en C++ pour interfacer la sortie d'un programme console
justement avec Windev mais pas facile... faut maitriser les pipe :)

A+
Philippe


"Alain" a écrit dans le message de
news:
Je veux faire un truc 'tout bête' :
- Lancer une appli dos
- savoir quand l'appli est terminée
- récupérer son code retour
- pouvoir stopper l'appli dos si elle n'est pas terminée à partir d'un
certain temp

Avec LanceAppli, je pourrais m'en sortir si exeNonBloquant et
exeValeurRetour étaient utilisables ensembles... ce qui n'est pas le
cas.

On a donc soit une attente de fin d'appli pour avoir son code retour,
soit une execution en parallèle de l'appli windev mais sans pouvoir
avoir le code retour.

Avant de me lancer dans les API qui, peut-être, me permettraient de
m'en sortir, j'aimerais savoir si quelqu'un a une idée.

Côté API, ce sera pas simple car la plupart des API sur les process
travaillent uniquement sur un process courant ou ont besoin d'un
handle que je vois pas comment récupérer en Windev (LanceAppli permet
juste de récupérer le PID).


Avatar
Georges PEYRE
Bonjour,
Tu peux utiliser un petit moyen simple avec un fichier témoin de format
.txt que tu feras renommer par ton programme DOS en fonction de la
situation d'exécution du programme DOS

1) Tu crées avec un éditeur de texte le fichier TEMOIN.TXT qui contient
une ligne de texte quelconque

Je veux faire un truc 'tout bête' :
- Lancer une appli dos


2) Au début du programme DOS que tu lances avec lanceappli.. , tu fais
un RENAME TEMOIN.TXT TEMOINDB.TXT
3) A la fin du programme DOS tu fais un RENAME TEMOIN.TXT TEMOINFI.TXT

- savoir quand l'appli est terminée
- pouvoir stopper l'appli dos si elle n'est pas terminée à partir d'un
certain temp


4) Dans ton programme Windev tu testes périodiquement avec un timer la
présence du fichier TEMOINFI.TXT
SI fFichierExiste(FrepEnCours()+"temoinfi.txt")

- récupérer son code retour
ton programme DOS peut ajouter le code retour dans le fichier TEMOINFI.TXT



Si le fichier TEMOINFI.TXT existe tu fais un dernier RENAME
TEMOINFI.TXT TEMOIN.TXT

Pas besoin d'API, mais c'est peut-être trop simple

Cordialement





Alain a exposé le 12/07/04 :
Je veux faire un truc 'tout bête' :
- Lancer une appli dos
- savoir quand l'appli est terminée
- récupérer son code retour
- pouvoir stopper l'appli dos si elle n'est pas terminée à partir d'un
certain temp

Avec LanceAppli, je pourrais m'en sortir si exeNonBloquant et
exeValeurRetour étaient utilisables ensembles... ce qui n'est pas le
cas.

On a donc soit une attente de fin d'appli pour avoir son code retour,
soit une execution en parallèle de l'appli windev mais sans pouvoir
avoir le code retour.

Avant de me lancer dans les API qui, peut-être, me permettraient de
m'en sortir, j'aimerais savoir si quelqu'un a une idée.

Côté API, ce sera pas simple car la plupart des API sur les process
travaillent uniquement sur un process courant ou ont besoin d'un
handle que je vois pas comment récupérer en Windev (LanceAppli permet
juste de récupérer le PID).



--
Elle est pas belle la vie ?
Avatar
Georges PEYRE
Bonjour,
Tu peux utiliser un petit moyen simple avec un fichier témoin de format
.txt que tu feras renommer par ton programme DOS en fonction de la
situation d'exécution du programme DOS

1) Tu crées avec un éditeur de texte le fichier TEMOIN.TXT qui contient
une ligne de texte quelconque


Je veux faire un truc 'tout bête' :
- Lancer une appli dos
2) Au début du programme DOS que tu lances avec lanceappli.. , tu fais
un RENAME TEMOIN.TXT TEMOINDB.TXT
3) A la fin du programme DOS tu fais un RENAME TEMOINDB.TXT
TEMOINFI.TXT


- savoir quand l'appli est terminée
- pouvoir stopper l'appli dos si elle n'est pas terminée à partir d'un
certain temp
4) Dans ton programme Windev tu testes périodiquement avec un timer la
présence du fichier TEMOINFI.TXT
SI fFichierExiste(FrepEnCours()+"temoinfi.txt")


- récupérer son code retour
ton programme DOS peut ajouter le code retour dans le fichier
TEMOINFI.TXT

Si le fichier TEMOINFI.TXT existe tu fais un dernier RENAME
TEMOINFI.TXT TEMOIN.TXT

Pas besoin d'API, mais c'est peut-être trop simple

Cordialement





Alain a exposé le 12/07/04 :

Je veux faire un truc 'tout bête' :
- Lancer une appli dos
- savoir quand l'appli est terminée
- récupérer son code retour
- pouvoir stopper l'appli dos si elle n'est pas terminée à partir d'un
certain temp

Avec LanceAppli, je pourrais m'en sortir si exeNonBloquant et
exeValeurRetour étaient utilisables ensembles... ce qui n'est pas le
cas.

On a donc soit une attente de fin d'appli pour avoir son code retour,
soit une execution en parallèle de l'appli windev mais sans pouvoir
avoir le code retour.

Avant de me lancer dans les API qui, peut-être, me permettraient de
m'en sortir, j'aimerais savoir si quelqu'un a une idée.

Côté API, ce sera pas simple car la plupart des API sur les process
travaillent uniquement sur un process courant ou ont besoin d'un
handle que je vois pas comment récupérer en Windev (LanceAppli permet
juste de récupérer le PID).


--
Elle est pas belle la vie ?

--
Elle est pas belle la vie ?
Avatar
aprosper_fr
Merci pour les réponses mais je souhaitais une gestion complète dans
Windev.

Le truc du fichier txt n'est pas suffisemment sécurisé pour moi.

En fait, je me suis quand-même décidé à faire avec les API et ça
fonctionne très bien. J'avais peur de la difficulté mais c'était
injustifié.

Merci à tous.

(Alain) wrote in message news:...
Je veux faire un truc 'tout bête' :
- Lancer une appli dos
- savoir quand l'appli est terminée
- récupérer son code retour
- pouvoir stopper l'appli dos si elle n'est pas terminée à partir d'un
certain temp

Avec LanceAppli, je pourrais m'en sortir si exeNonBloquant et
exeValeurRetour étaient utilisables ensembles... ce qui n'est pas le
cas.

On a donc soit une attente de fin d'appli pour avoir son code retour,
soit une execution en parallèle de l'appli windev mais sans pouvoir
avoir le code retour.

Avant de me lancer dans les API qui, peut-être, me permettraient de
m'en sortir, j'aimerais savoir si quelqu'un a une idée.

Côté API, ce sera pas simple car la plupart des API sur les process
travaillent uniquement sur un process courant ou ont besoin d'un
handle que je vois pas comment récupérer en Windev (LanceAppli permet
juste de récupérer le PID).