Passwordchar en mode console [Résolu]

moi411 180 Messages postés samedi 22 novembre 2003Date d'inscription 25 juin 2017 Dernière intervention - 19 juil. 2009 à 02:05 - Dernière réponse : moi411 180 Messages postés samedi 22 novembre 2003Date d'inscription 25 juin 2017 Dernière intervention
- 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
cs_Robert33 835 Messages postés samedi 15 novembre 2008Date d'inscription 14 janvier 2017 Dernière intervention - 19 juil. 2009 à 09:32
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!

Merci cs_Robert33 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_Robert33
moi411 180 Messages postés samedi 22 novembre 2003Date d'inscription 25 juin 2017 Dernière intervention - 19 juil. 2009 à 12:40
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.