windows锁屏API

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 ) );  
            }  
        }  


 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值