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 denn

    for(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.





  • 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


Anmelden zum Antworten