软件编程
位置:首页>> 软件编程>> C#编程>> C#隐藏控制台键盘输入的方法

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

作者:work24  发布时间:2022-04-29 21:11:06 

标签: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#程序设计有所帮助。

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com