zoukankan      html  css  js  c++  java
  • C#实现自动锁屏+关屏

    新近找到了windows锁屏API:LockWorkStation

    于是乎把之前的关屏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 ) );
    }
    }

    ..

    如此即可大功告成了。。。

    之所以要禁用鼠标键盘,是为了关屏成功。。。~~~废话。。。

    新建个快捷方式,加个参数,即可锁屏。

    共享之:目标另存为(down)

    作者:一修先生
             
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    spring 事务配置方式以及事务的传播性、隔离级别
    springmvc 事务控制与数据库隔离级别
    mybatis
    mapper 传多个参数
    ubuntu vim编辑文件保存是出现权限不足
    配置phpmyadmin连接远程 MySQL数据库
    spring mvc Response header content type
    Spring 异常处理三种方式 @ExceptionHandler
    SpringMvc @ResponseBody
    Redhat6.8安装Oracle11g下遇到两个问题记录
  • 原文地址:https://www.cnblogs.com/1971ruru/p/1740216.html
Copyright © 2011-2022 走看看