PC SOFT
DEPOT EN LIGNE
POUR WINDEVWEBDEV ET WINDEV MOBILE

classe cConsole (exploitation console windows)
Publié par Jurassic Pork
- Non classée
Nouveautés
Description
Cette classe est basée sur la classe WD7DOS créée par drcharly93 et romu, reprise par Nicolas Compain (adaptation 32 bits 64 bits). Elle permet d'exécuter des commandes win32 console (et non pas DOS comme on a toujours tendance à le dire) sans qu'une fenêtre s'ouvre pour l'utilisateur et avec possibilité d'exploiter le texte renvoyé par la commande.
Par rapport à la classe WD7DOS elle apporte les modifications suivantes :
Définition de procédures de réception et de fin de commande -> ProcReception ProcFinCmd
Gestion de la conversion de texte OEM vers ANSI (pour les problèmes d'accents en particulier) -> SortieAnsi
Une procédure de lecture de l'état de la commande -> LireEtat
Le code Retour de la commande ou un code d'erreur interne est renvoyé.
Une méthode d'exécution en mode asynchrone en utilisant un thread -> ExécuterCmdAsync.
Amélioration des performances du pipe de lecture en utilisant un buffer de 4096 octets (au lieu de 256).

En mode d'exécution normale (ExécuterCmd) des procédures sont disponibles :
1 - procReception pour lire à la volée ce qu'envoie la commande exécutée.
2 - procFinCmd quand la commande est terminée.

En mode d'exécution asynchrone (ExécuterCmdAsync) les procédures précédentes ne fonctionnent pas. L'avantage du mode asynchrone c'est de ne pas geler l'IHM en cas d'exécution de commande avec blocage en attente de timeout (comme par exemple un "net use" sur une machine qui ne répond pas).

Une méthode d'arrêt (ArrêterCmd) permet d'interrompre une commande en cours.

En cas de commande native de l'interpréteur de commande comme par exemple "dir" ne pas oublier de mettre "cmd /c " avant la commande.

La classe est fournie comme cela (as is). L'utilisation de cette classe est à vos risques et périls et je décline toute responsabilité en cas de problèmes ou de préjudices rencontrés.

Pour illustrer ceci un projet exemple (en Windev 12 pour que l'on puisse l'utiliser à partir de windev 12) contenant la classe cConsole est fourni.


Illustrations, copies d'écran
none
none
Avis des utilisateurs
(Pour noter la ressource, cliquez sur Ecrire un avis)
Nicolas COMPAIN
@DrCharly93 il n’y a pas de quoi. Je ne savais même pas qu'elle avait été reprise ici. Je viens de le découvrir.
J'en profite pour vous remercier également.
Jurassic Pork
Contrairement à ce que j'indique dans la description les procédures procReception et procFinCmd fonctionnent en mode asynchrone. Il faut les utiliser dans des procédures globales et non locales.
DrCharly93 (WDForge.
Merci pour cette évolution
A PROPOS
EVALUATION :
51(1)
TELECHARGEMENTS :
754
PUBLIÉE :
09 juillet 2012
VERSION :
CONCERNE :
WINDEV
Version minimale : WD12 et +
TAILLE :
148,1 Ko
DU MÊME DÉVELOPPEUR