手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#读取或设置ScrollLock状态的方法
C#读取或设置ScrollLock状态的方法
摘要:本文实例讲述了C#读取或设置ScrollLock状态的方法。分享给大家供大家参考。具体如下:C#读取或者设置ScrollLock状态,允许滚...

本文实例讲述了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 " ) ); 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#程序设计有所帮助。

【C#读取或设置ScrollLock状态的方法】相关文章:

C#读写文件的方法汇总

使用C# Winform应用程序获取网页源文件的解决方法

解决C#全屏幕截图的实现方法

C#访问应用程序配置文件的方法

C# 语音功能的实现方法

C# 去除首尾字符或字符串的方法

C#图片压缩的实现方法

C# 读取指定路径配置文件的方法

在C#中创建和读取XML文件的实现方法

C# 获取属性名的方法

精品推荐
分类导航