Passwordchar en mode console [Résolu]

Messages postés
180
Date d'inscription
samedi 22 novembre 2003
Dernière intervention
25 juin 2017
- - Dernière réponse : moi411
Messages postés
180
Date d'inscription
samedi 22 novembre 2003
Dernière intervention
25 juin 2017
- 19 juil. 2009 à 12:40
Bonsoir à tous,
Donc voilà, j'ai une application à développer en mode console qui doit utiliser une saisie de mot de passe. Il évident que le mot de passe ne doit pas apparaître en clair sur l'écran!

Je voudrais qu'à chaque fois que j'appuie sur une touche, il s'affiche un autre caractère, une étoile par exemple (sans avoir à taper sur enter entre 2 lettres). Cette fonction c'est la passwordChar du mode graphique.

Bref: Comment remplacer un caractère par un autre pendant la saisie en mode console?

J'ai essayé des tas de choses mais je suis toujours bloqué par: Console.In.Read(); qui m'oblige à appuyer sur Enter...

Voilà mon problème j'espère que tous ça clair! Merci d'avance.

moi
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
835
Date d'inscription
samedi 15 novembre 2008
Dernière intervention
14 janvier 2017
22
3
Merci
bonjour toi,

voici un petit exemple:

        static string GetPwd(string prompt)
        {
            Console.Write(prompt + ": ");
            ConsoleKeyInfo key;
            string pwd="";
            do
            {
                key = Console.ReadKey(true);
                if (char.IsControl(key.KeyChar))
                {
                    if (key.Key == ConsoleKey.Enter)
                        return (pwd);
                    if (key.Key == ConsoleKey.Escape)
                        return (null);
                    if (key.Key == ConsoleKey.Backspace)
                        pwd = pwd.Remove(pwd.Length - 1);
                }
                else
                    pwd += key.KeyChar;
                Console.Write("\r" + prompt + ": ");
                foreach (char c in pwd)
                    Console.Write('*');
                Console.Write(' ');

            } while (true);
        }


C# is amazing, enjoy it!

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Robert33
Messages postés
180
Date d'inscription
samedi 22 novembre 2003
Dernière intervention
25 juin 2017
5
0
Merci
bonjour robert trente-troisième du nom,
C'est exactement ce que j'attendais, j'avais essayer aussi avec readkey aussi mais récupérer le caractère courant avec keychar, je dois le dire, ne m'avais pas du tout traversé l'esprit!
Je te remercie et te souhaite un bon week end.

moi
Commenter la réponse de moi411

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.