Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Passwortfeld

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 < [ 3 ]
010
18.03.2006, 19:47 Uhr
theosoft



... übrigens, ein Zeichen auf dem screen löschst du einfach, indem du an diese Position gehst und das zeichen mit einem blank (Leerzeichen) überschreibst.
--
ifS (immer fröhliches Schaffen)
theosoft
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
18.03.2006, 22:41 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


gab auch ein escape-zeichen/sequenz wenn ich mich nich irre um einen schritt zurückzugehen.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
19.03.2006, 20:16 Uhr
~MalcomX
Gast



Zitat von theosoft:
... ich dachte sowas:

C++:
#include <conio>
#include <iostream>
int main()
{
  gotoxy(10, 10);
  cout << "X";
  getch();
  return(0);
}



Ich krieg kein Programm kompiliert das diese gotoxy() anweisung benutzt, auch über MSDN find ich dazu nichts? Was muss ich den tun um dem Kompilier diese Methode bekannt zu machen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
19.03.2006, 20:30 Uhr
theosoft



mit welchem Kompiler bzw. welcher IDE arbeites du?
--
ifS (immer fröhliches Schaffen)
theosoft
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
19.03.2006, 22:52 Uhr
~MalcomX
Gast



Zitat von theosoft:
mit welchem Kompiler bzw. welcher IDE arbeites du?


Visual C++ 2005 Prof.

Wie gesagt, auch über MSDN find ich keinen Treffer, ist die Methode depracted und wurde zwischenzeitlich entfernt?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
19.03.2006, 23:20 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hi für VC musste das hier benutzen:


C++:
#include <windows.h>

#if _MSC_VER > 1000
extern"C" int gotoxy(int x,int y)
{  
  HANDLE hConsoleOutput;
  CONSOLE_SCREEN_BUFFER_INFO csbi;
  COORD Cursor_at_Pos = { x, y};
    
  hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
  GetConsoleScreenBufferInfo(hConsoleOutput, &csbi);

  SetConsoleCursorPosition(hConsoleOutput , Cursor_at_Pos);
  return 0;
}
#endif


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
30.03.2006, 11:15 Uhr
~MalcomX
Gast



Zitat von FloSoft:
hi für VC musste das hier benutzen:


C++:
#include <windows.h>

#if _MSC_VER > 1000
extern"C" int gotoxy(int x,int y)
{  
  HANDLE hConsoleOutput;
  CONSOLE_SCREEN_BUFFER_INFO csbi;
  COORD Cursor_at_Pos = { x, y};
    
  hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
  GetConsoleScreenBufferInfo(hConsoleOutput, &csbi);

  SetConsoleCursorPosition(hConsoleOutput , Cursor_at_Pos);
  return 0;
}
#endif




Ich Probleme die derzeitige Cursorpostion zu ermitteln, damit ich diese dann auch richtig zurücksetzen kann, sprich -1 auf der x - achse.

ich dachte mir das so:

C++:
std::cout<<"Geben Sie bitten ihr Passwort an."<<std::endl;
    std::cout<<"Passwort: ";
    

    typedef struct tagPOINT {
    LONG x;
    LONG y;
    };

    LPPOINT Point;


    while(cPwd != 13)
    {
        cPwd = (char) _getch();
        if(cPwd != 8)
        {
            DBpwd[count] = cPwd;
            std::cout<<"*";
            count++;
        }
        else
        {
            Point = NULL;
            GetCursorPos(Point);
            gotoxy((Point->x)-1, Point->y);
        }
    }
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
30.03.2006, 11:53 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


über GetConsoleScreenBufferInfo kannste die aktuelle Position auslesen.

ansonsten einfach so:

1. Y-Position deiner Passwort-Zeile abrufen (GetConsoleScreenBufferInfo)
2. count--;
3. dann einfach gotoxy(count, Y)
4. cout << " " (damit das * weg ist)
5. gotoxy(count, Y)

und weiter gehts
--
class God : public ChuckNorris { };

Dieser Post wurde am 30.03.2006 um 11:54 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
30.03.2006, 12:10 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


warum so umständlich?
es wäre doch viel einfacher bei bestimmten tasten gar nicht erst das sternchen auszugeben, dann muss man es auch nicht wieder weg machen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
30.03.2006, 12:17 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hi, das (char)8 ist afaik die Backspacetaste ;-)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: