windows锁屏API

来源:互联网 发布:the history of linux 编辑:程序博客网 时间:2024/06/06 22:25
public Form1( bool aLock ) {            if (aLock) {                //锁屏+关屏                LockWorkStation();                SendMessage( this.Handle, (uint)0x0112, (IntPtr)0xF170, (IntPtr)2 );            }            else {                //禁止鼠标键盘动作+关屏                BlockInput( true );                System.Threading.Thread.Sleep( 10 );                SendMessage( this.Handle, (uint)0x0112, (IntPtr)0xF170, (IntPtr)2 );                BlockInput( false );            }            this.Close();            //Application.Exit();            Environment.Exit( 0 );        }        //关屏        [DllImport( "user32.dll", CharSet = CharSet.Auto )]        static extern IntPtr SendMessage( IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam );        //禁止鼠标键盘动作        [return: MarshalAs( UnmanagedType.Bool )]        [DllImport( "user32.dll", CharSet = CharSet.Auto, ExactSpelling = true )]        public static extern bool BlockInput( [In, MarshalAs( UnmanagedType.Bool )] bool fBlockIt );        //锁屏        [DllImport( "user32.dll" )]        public static extern bool LockWorkStation();
需要指出的是,在退出程序时使用Environment.Exit( 0 );而非Application.Exit();否则会出错哦~~提示类似:“***遇到错误,需要关闭”。还有就是修改一下Main:
static void Main(string[] args) {            //Application.EnableVisualStyles();            //Application.SetCompatibleTextRenderingDefault( false );            if (args == null || args.Length == 0) {                //禁止鼠标键盘动作+关屏                Application.Run( new Form1( false ) );            }            else {                //锁屏+关屏                Application.Run( new Form1( true ) );            }        }


原创粉丝点击