C#隐藏控制台键盘输入的方法

本文实例讲述了C#隐藏控制台键盘输入的方法。分享给大家供大家参考。具体如下:

using System;

namespace RobvanderWoude

{

class HideInput

{

static int Main( string[] args )

{

try

{

bool clearscreen = false;

if ( args.Length > 1 )

{

return WriteError( "Too many command line arguments" );

}

if ( args.Length == 1 )

{

switch ( args[0].ToUpper( ) )

{

case "/C":

clearscreen = true;

break;

case "/?":

return WriteError( );

default:

return WriteError( "Invalid command line argument \"" + args[0] + "\"" );

}

}

// Set console foreground color to background color to hide what's being typed

ConsoleColor color = Console.ForegroundColor;

Console.ForegroundColor = Console.BackgroundColor;

// Read 1 line of input from the console

string input = Console.ReadLine( );

// Restore the original console foreground color

Console.ForegroundColor = color;

// Clear the screen id specified on the command line

if ( clearscreen )

{

Console.Clear( );

}

// Display the input - which should be redirected for this program to be of any use

Console.WriteLine( input );

// Returncode 0 for success, or 1 if the input was empty or whitespace only

if ( string.IsNullOrWhiteSpace( input ) )

{

return 1;

}

else

{

return 0;

}

}

catch ( Exception e )

{

return WriteError( e.Message );

}

}

public static int WriteError( string errorMessage = "" )

{

Console.ResetColor( );

if ( string.IsNullOrEmpty( errorMessage ) == false )

{

Console.Error.WriteLine( );

Console.ForegroundColor = ConsoleColor.Red;

Console.Error.Write( "ERROR: " );

Console.ForegroundColor = ConsoleColor.White;

Console.Error.WriteLine( errorMessage );

Console.ResetColor( );

}

Console.Error.WriteLine( );

Console.Error.WriteLine( "HideInput, Version 1.10" );

Console.Error.WriteLine( "Batch utility to read 1 line of input while hiding what's being typed, by" );

Console.Error.WriteLine( "temporarily setting the console foreground color equal to its background color" );

Console.Error.WriteLine( );

Console.Error.Write( "Usage: FOR /F \"tokens=*\" %%A IN ('" );

Console.ForegroundColor = ConsoleColor.White;

Console.Error.Write( "HIDEINPUT" );

Console.ResetColor( );

Console.Error.WriteLine( "') DO SET password=%%A" );

Console.Error.Write( " or: FOR /F \"tokens=*\" %%A IN ('" );

Console.ForegroundColor = ConsoleColor.White;

Console.Error.Write( "HIDEINPUT /C" );

Console.ResetColor( );

Console.Error.WriteLine( "') DO SET password=%%A" );

Console.Error.WriteLine( );

Console.Error.Write( "Where: " );

Console.ForegroundColor = ConsoleColor.White;

Console.Error.Write( "/C" );

Console.ResetColor( );

Console.Error.WriteLine( " clears the screen to remove what's typed from the screen buffer" );

Console.Error.WriteLine( );

Console.Error.WriteLine( "Written by Rob van der Woude" );

return 1;

}

}

}

希望本文所述对大家的C#程序设计有所帮助。

以上是 C#隐藏控制台键盘输入的方法 的全部内容, 来源链接: utcz.com/z/325898.html

回到顶部