classe cConsole (exploitation console windows)
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) il faut que les procédures précédentes soient globales. 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 windev16 contenant la classe cConsole est fourni.
Partager