clear console funkt in winXP nicht mehr
-
hi all,
bei meinen ganzen consolenprogs, funktioniert das bildschirmlöschen nicht mehr seit ich WinXP verwende. Unter Win98 geht es noch, aber unter 2000,XP leider nicht mehr.
hab da folgende Funktion verwendet
void ClearConsole(void)
{
COORD xcoord;
HANDLE conhandle;
int i=0;
int x;for(i=0;i < 26;i++)
printf("/n");conhandle = GetStdHandle(STD_OUTPUT_HANDLE);
xcoord.X=0;
xcoord.Y=0;x=SetConsoleCursorPosition(conhandle, xcoord);
}vielleicht hat wer eine idee warum das nicht mehr funktioniert.
danke
gruss
rocco
-
Eine etwas langsame und komische Art den Bildschirm zu löschen. Aber das ist erst mal zweitrangig.
Was genau funktioniert da nicht? Wird der Bildschirm nicht gelöscht, was mich sehr sehr wundern würde, oder wird der Cursor nicht in die obere linke Ecke gesetzt?
Schau doch mal in die Konsolen-FAQ. Da gibts einen Thread, der sich mit dem Thema Bildschirmlöschen beschäftigt und natürlich auch die Funktionen dazu
-
das cursor setzten funktioniert, aber der bildschirm wird nicht gelöscht.
der neue inhalt liegt über dem alten.
hab in der faq nur escape_sequenzen bzw die improved_console gefunden.
escape funktionieren mit xp nicht mehr, improved_console möcht ich mir vorerst nicht antun.
möcht nur das die funktion das tut was sie vorher auch getan hat, bildschirm löschen, cursor in die linke obere ecke setzten.
ich kann es mir nicht erklären dennfor(i=0;i < 26;i++)
printf("/n");das müsste eigentlich immer funktioniern, tut es aber anscheinend nicht.?????
gruss
Rocco
-
x=SetConsoleCursorPosition(conhandle, xcoord);
da scheint der hund begraben zu sein.
irgendwie verhält sich das sehr seltsam.
ich hab ein programm mit mehreren menüs, wenn ich die obige zeile weglasse werden wenigstens die zeilen nach unten geschoben, ansonsten überlagern sie sich, ich versteh es nicht.wenn das cursorsetzen nicht funktionieren würde, würd es immer unten weitergehen.
vielleicht ist die position x = 0, y = 0 jetz fix immer ganz oben, und nicht nur im sichtbaren bereich, das könnte sein.
-
http://www.netzgrafik.com/rocco/cls_test.zip
hab hier ein beispiel
-
hab hier eine funktionierende Lösung gefunden
http://www.c-plusplus.net/forum/viewtopic.php?t=57065&start=0&postdays=0&postorder=asc&highlight=warum obige funktion auf einmal nicht mehr funktioniert hat, ist mir allerdings ein rätsel.
gruss
rocco
-
@Rocco
Vielleicht liegts wirklich am Nullsetzen von x und y. Setz beide Werte mal auf 1. Würd mich interesieren, obs dann funktioniert. gotoxy() in der conio.h hatte, glaub ich, auch dahingehend ne Macke.
-
funktiniert nicht, aber macht nichts, glücklicherweise hab ich ja jetzt eine funktion die funktioniert
gruss
rocco