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)

转载于:https://www.cnblogs.com/1971ruru/archive/2010/05/20/1740216.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值