Fonction gotoxy avant la partie affichée [Résolu]

Messages postés
27
Date d'inscription
mercredi 19 janvier 2011
Statut
Membre
Dernière intervention
1 novembre 2018
- - Dernière réponse : salut67
Messages postés
27
Date d'inscription
mercredi 19 janvier 2011
Statut
Membre
Dernière intervention
1 novembre 2018
- 21 mars 2014 à 21:57
Bonjour,
sous windows XP+7, j'ai une fenêtre de commande dans laquelle j'exécute un fichier test.cmd ; le résultat s'affiche : en général 20 ou 30 lignes, parfois 100 lignes. Le tout est lisible en utilisant l'ascenseur.
Je souhaite ajouter à la fin du test.cmd une partie complétant l'affichage des différentes lignes (*). J'ai sous la main un programme perso myprint.c que je peux modifier, l'idée étant de l'appeler dans test.cmd pour positionner mon curseur et compléter les lignes.
Ok pour les lignes actuellement affichées, mais quid des lignes précédentes ? Elles sont accessibles par l'ascenseur mais sont en deça de la 1ère ligne, donc inaccessibles par gotoxy. Une idée ? Une solution de contournement ?
Merci bien.
Jean-Claude

(*) je ne veux pas modifier l'algorithme (trop lourds, trop de ralentissements, je veux conserver l'affichage rapide des info essentielles, puis ensuite des info supplémentaires)
Afficher la suite 

2 réponses

Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
17
0
Merci
Salut,

on peut accéder à une cellule (caractère) de n'importe quelle lignes dans la console en utilisant les Apis Win :

Récupérer le handle de la console (in et out)
DWORD dw = STD_OUTPUT_HANDLE; // ou STD_INPUT_HANDLE
HANDLE hdl = GetStdHandle(dw);

remplir une structure : CONSOLE_SCREEN_BUFFER_INFO
Apis : GetConsoleScreenBufferInfo()

Se baser sur les coordonnées du curseur pour se positionner dans le "buffer" écran. (struct : COORD )

et avec la fonction suivante,

BOOL WINAPI WriteConsoleOutput(
HANDLE hConsoleOutput,
const CHAR_INFO *lpBuffer,
COORD dwBufferSize,
COORD dwBufferCoord,
PSMALL_RECT lpWriteRegion
);

tu pourras écrire dans une région "hors de portée" du curseur courant.

bye...
Commenter la réponse de yann_lo_san
Messages postés
27
Date d'inscription
mercredi 19 janvier 2011
Statut
Membre
Dernière intervention
1 novembre 2018
0
Merci
Salut,
exactement ce que je cherchais, merci bien...
Jean-Claude
Commenter la réponse de salut67