国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#讀取或設置ScrollLock狀態的方法

2020-01-24 01:58:36
字體:
來源:轉載
供稿:網友

本文實例講述了C#讀取或設置ScrollLock狀態的方法。分享給大家供大家參考。具體如下:

C#讀取或者設置ScrollLock狀態,允許滾動狀態讀取或者設置

using System;using System.Runtime.InteropServices;using System.Windows.Forms;namespace RobvanderWoude{ public class ScrollLock {  [DllImport( "user32.dll" )]  static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo);  const int KEYEVENTF_EXTENDEDKEY = 0x1;  const int KEYEVENTF_KEYUP = 0x2;  public static int Main(string[] args)  {   try   {    bool scrollLock;    bool newState = false;    bool setState = false;    bool setVerbose = false;    bool verbose = true;    if ( args.Length > 2 )    {     return WriteError("Invalid command line argument(s).");    }    else    {     foreach ( string arg in args )     {      switch ( arg.ToUpper( ) )      {       case "/?":       case "-H":       case "/HELP":       case "-HELP":       case "--HELP":        return WriteError(string.Empty);       case "/Q":       case "-Q":       case "/QUIET":       case "-QUIET":       case "--QUIET":        if ( setVerbose )        {         return WriteError("Duplicate switch not allowed.");        }        setVerbose = true;        verbose = false;        break;       case "/V":       case "-V":       case "/VERBOSE":       case "-VERBOSE":       case "--VERBOSE":        if ( setVerbose )        {         return WriteError("Duplicate switch not allowed.");        }        setVerbose = true;        verbose = true;        break;       case "0":       case "OFF":        if ( setState )        {         return WriteError("Duplicate argument not allowed.");        }        setState = true;        newState = false;        break;       case "1":       case "ON":        if ( setState )        {         return WriteError("Duplicate argument not allowed.");        }        setState = true;        newState = true;        break;       default:        return WriteError("Invalid command line argument "+arg);      }     }    }    if ( Control.IsKeyLocked( Keys.Scroll ) )    {     scrollLock = true;     if ( setState && !newState )     {      keybd_event(0x91, 0x45, KEYEVENTF_EXTENDEDKEY, (UIntPtr) 0);      keybd_event(0x91, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, (UIntPtr) 0);     }    }    else    {     scrollLock = false;     if ( setState && newState )     {      keybd_event(0x91,0x45,KEYEVENTF_EXTENDEDKEY,(UIntPtr) 1);      keybd_event(0x91,0x45,KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,(UIntPtr) 1);     }    }    scrollLock = Control.IsKeyLocked( Keys.Scroll );    if ( verbose )    {     Console.Write( "ScrollLock = " );     Console.ForegroundColor = ConsoleColor.White;     Console.WriteLine( ( scrollLock ? "ON" : "OFF" ) );     Console.ResetColor( );    }    return ( scrollLock ? 2 : 0 );   }   catch ( Exception e )   {    return WriteError( e );   }  }  public static int WriteError( Exception e )  {   return WriteError( e == null ? null : e.Message );  }  public static int WriteError( string errorMessage )  {   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( "ScrollLock, Version 1.01" );   Console.Error.WriteLine( "Read or set ScrollLock key state" );   Console.Error.WriteLine( );   Console.Error.Write( "Usage: " );   Console.ForegroundColor = ConsoleColor.White;   Console.Error.WriteLine("SCROLLLOCK [ 0 | 1 | ON | OFF ] [ /Quiet | /Verbose ]");   Console.ResetColor( );   Console.Error.WriteLine( );   Console.Error.Write( "Where: " );   Console.ForegroundColor = ConsoleColor.White;   Console.Error.Write( "0" );   Console.ResetColor( );   Console.Error.Write( " or " );   Console.ForegroundColor = ConsoleColor.White;   Console.Error.Write( "OFF" );   Console.ResetColor( );   Console.Error.WriteLine( "  set ScrollLock off" );   Console.ForegroundColor = ConsoleColor.White;   Console.Error.Write( "    1" );   Console.ResetColor( );   Console.Error.Write( " or " );   Console.ForegroundColor = ConsoleColor.White;   Console.Error.Write( "ON" );   Console.ResetColor( );   Console.Error.WriteLine( "  set ScrollLock on" );   Console.ForegroundColor = ConsoleColor.White;   Console.Error.Write( "    /Q" );   Console.ResetColor( );   Console.Error.WriteLine( "uiet   won't display anything on screen" );   Console.ForegroundColor = ConsoleColor.White;   Console.Error.Write( "    /V" );   Console.ResetColor( );   Console.Error.WriteLine("erbose displays the (new) ScrollLock key state on screen (default)");   Console.Error.WriteLine();   Console.Error.WriteLine("Notes: An /"errorlevel/" 0 is returned if ScrollLock is off, 2 if");   Console.Error.WriteLine(" ScrollLock is on, or 1 in case of (command line) errors.");   Console.Error.WriteLine();   Console.Error.WriteLine("Written by Rob van der Woude");   return 1;  } }}

希望本文所述對大家的C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蓝山县| 滁州市| 库伦旗| 洛扎县| 仁化县| 湾仔区| 札达县| 历史| 白玉县| 山丹县| 鲁山县| 石河子市| 博野县| 和龙市| 华亭县| 新晃| 墨江| 阳原县| 卓尼县| 林芝县| 鹰潭市| 滕州市| 盐山县| 高陵县| 肥东县| 察哈| 永泰县| 海淀区| 蕲春县| 晋州市| 甘南县| 蒙山县| 澄城县| 宁河县| 和硕县| 长宁县| 汨罗市| 永济市| 双流县| 黑水县| 瑞丽市|