程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#實現自動鎖屏+關屏

C#實現自動鎖屏+關屏

編輯: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 ) );
}
}

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

之所以要禁用鼠標鍵盤,是為了關屏成功。。。~~~廢話。。。

新建個快捷方式,加個參數,即可鎖屏。點擊下載源碼

出處:http://1971ruru.cnblogs.com/

    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved