[C++] mot de passe et console DOS

mot de passe et console DOS [C++] - C++ - Programmation

Marsh Posté le 03-02-2009 à 11:20:05    

Bonjour,
 
j'ai besoin de protéger très sommairement un logiciel qui fonctionne dans une console DOS.
 
je voudrais qu'il demande un mot de passe, mais que celui ci ne s'affiche pas a l'écran...
 
et je trouve rien la dessus :/
 
si quelqu'un a une idée, merci :)


---------------
ras
Reply

Marsh Posté le 03-02-2009 à 11:20:05   

Reply

Marsh Posté le 03-02-2009 à 14:43:30    

personne  [:cerveau zytrasnif]


---------------
ras
Reply

Marsh Posté le 08-02-2009 à 22:10:51    

tu peux effacer l'écran après avoir entré le mot de passe en utilisant la commande "cls"
 
Je ne sais pas s'il existe un truc tout fait pour ce que tu cherches.
 
Sinon, tu peux récupérer manuellement les inputs clavier, et afficher toi même des "*" à la place.
 
J'avais écrit ça à une époque :

Code :
  1. char readAsciiConsoleInput()
  2. {
  3.  HANDLE stdIn = GetStdHandle( STD_INPUT_HANDLE );
  4.  ASSERT( stdIn != null_ptr );
  5.  // loop and read input events one by one ; we stop at the first key down event or when the input buffer is empty.
  6.  // notice that we remove all events, this may need to be improved if someone else need these events
  7.  while( true )
  8.  {
  9.   DWORD numInputs = 0;
  10.   BOOL result = GetNumberOfConsoleInputEvents( stdIn, &numInputs );
  11.   ASSERT( result );
  12.   if( numInputs == 0 )
  13.    return 0; // input buffer is empty
  14.   // we read a single input record
  15.   INPUT_RECORD input;
  16.   DWORD numRead;
  17.   result = ReadConsoleInput( stdIn, &input, 1, &numRead );
  18.   ASSERT( result );
  19.   ASSERT( numRead == 1 );
  20.   if( input.EventType == KEY_EVENT )
  21.   {
  22.    KEY_EVENT_RECORD& evt = input.Event.KeyEvent;
  23.    if( evt.bKeyDown && evt.uChar.AsciiChar != 0 ) // we ignore key events that can not be translated in ascii
  24.    {
  25.     return evt.uChar.AsciiChar;
  26.    }
  27.   }
  28.  }
  29. }


 
Ca récupère un caractère depuis l'entrée standard, sans l'afficher ; s'il n'y en a pas ça renvois 0. Tu peux l'appeler en boucle jusqu'à recevoir le caractère de retour à la ligne (touche entrée). J'avais fait ça parce que j'avais besoin de traiter d'autres choses en parallèle, donc je voulais une fonction non bloquante ; il y a sûrement plus simple...

Reply

Marsh Posté le 09-02-2009 à 12:12:32    

c'est pas mal ça déjà, je devrais pouvoir me débrouiller avec :)
 
merci


---------------
ras
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed