Passwordchar en mode console [Résolu]

Messages postés
180
Date d'inscription
samedi 22 novembre 2003
Statut
Membre
Dernière intervention
25 juin 2017
- - Dernière réponse : moi411
Messages postés
180
Date d'inscription
samedi 22 novembre 2003
Statut
Membre
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 

2 réponses

Meilleure réponse
Messages postés
834
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
25
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 127 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
Statut
Membre
Dernière intervention
25 juin 2017
3
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