windows锁屏API

来源:互联网 发布:c语言算法大全 编辑:程序博客网 时间:2024/06/02 06:31
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 ) );              }          }  


 

0 0
原创粉丝点击